今天小編要跟大家分享的文章是關于Linux 服務器安裝、配置和維護的方法叠穆。熟悉Linux系統的小伙伴們都知道少漆。每個 IP 地址都可以有一個主機名,主機名由一個或多個字符串組成硼被,字符串之間用小數點隔開示损。有了主機名,就不要死記硬背每臺 IP 設備的 IP 地址嚷硫,只要記住相對直觀有意義的主機名就行了检访。這就是 DNS 協議所要完成的功能。Linux入門新手和正在Linux學習的小伙伴快來看一看吧仔掸,希望能夠對大家有所幫助脆贵!
<img src="http://www.magedu.com/wp-content/uploads/2019/10/20190823161035_594.jpg" alt=" Linux 服務器安裝、配置和維護的方法"/>
今天我們將討論 DNS 服務器嘉汰,特別是 Linux DNS 服務器丹禀,及其如何安裝状勤、配置和維護它鞋怀。下面我們一起來看一看吧。
一持搜、/etc/hosts 文件
在沒有 DNS 服務器的情況下密似,每個系統在本地網絡上保留其主機名和相應 IP 地址列表的副本是合理的——特別是在沒有互聯網連接的小型站點上。
在 Linux 系統中葫盼,這個列表就是 / etc/hosts 文件残腌。即使你沒有 DNS 服務器或 DNS 服務器不可用,該文件也可以使用 / etc/hosts 文件將 IP 地址轉換為名稱贫导。
也許你已經有 DNS 服務器了抛猫,但你也會因為其它原因而想保留這個文件。例如孩灯,系統可能需要在向外部查詢之前在本地查找 DNS 服務器的 IP 地址;這意味著系統在查詢 DNS 服務器之前先檢索該文件闺金,如果查找到對應的域則無須查詢任何 DNS 服務器直接將其轉換為 IP 地址。
試試編輯下 / etc/hosts 文件峰档,并添加以下信息:127.0.0.1 google.com.
然后败匹,返回你的瀏覽器,輸入 google.com讥巡,看看結果如何掀亩。如果你的系統上安裝了 Apache 并且本地主機正在運行,瀏覽器會顯示 localhost 的索引頁欢顷,而不是 Google 頁面槽棍。
作為確認,你可以將 google.com 映射到任何網站的任何其他 IP 地址并查看結果。
因此這個文件所做的是將 IP 地址轉換成名字炼七,但這僅僅是在同一互相連接的網絡下外里。那么外部網絡和眾多系統的所有記錄是如何維護的呢?
每個人都需要維護自己的 / etc/hosts 文件并自己更新嗎?
更為穩(wěn)健的域名服務是 DNS 服務器。
二特石、域名
當你訪問網站時盅蝗,你可以輸入 FQDN(Fully Qualified Domain Name,完全限定域名)或類似 likegeeks.com 或 www.google.com 的域名姆蘸。在域名中從右到左的兩個點之間的每個文本依次是頂級域組件墩莫、二級域組件和三級域組件。
所以逞敷,com 是頂級域名組件; google 是二級域組件; 而 www 是三級域名組件狂秦。
實際上,當你訪問任何網站時推捐,瀏覽器會默認在域的末尾添加一個不可見的點裂问,因此該域將像 www.google.com. 一樣。該點被稱為根域牛柒。
該點是由一大堆稱為根域名服務器的特殊服務器管理的堪簿。截止這篇文章發(fā)表前,世界上有 13 個根域名服務器皮壁。你可以把他們當成互聯網的大腦 – 如果他們失效了椭更,世界上就沒有互聯網了。
為什么是 13 呢?因為如果世界的某處地震可能會破壞一個根服務器蛾魄,所以其他的服務器可以繼續(xù)提供服務直到受影響的服務器重新上線虑瀑。
這些根名稱服務器按字母順序命名,名稱如 a.root-server.net滴须、b.root-server.net 等舌狗。
三、頂級域名 (或稱作一級域名 TLDs)
我們已經見過頂級域名的組成部分扔水,如 com痛侍。可以認為铭污,頂級域名為 DNS 命名空間提供分類組織恋日。
頂級域名(TLD)根據地理或功能方面分為幾類。
截止本文撰寫時嘹狞,網上有 800 多個頂級域名岂膳。
頂級域名類別有:
· 通用的頂級域名如:org, .com, .net, .gov, .edu 等等
· 國家代碼頂級域名如:us, .ca 等,分別對應美國和加拿大的國家代碼
· 新的品牌頂級域名磅网,允許組織創(chuàng)建最多 64 個字符的 TLD谈截,如:.Linux, .microsoft, .companyname 等
· 基礎架構頂級域名如:.arpa
四、子域名
當你訪問一個類似 mail.google.com 這樣的網站, 這里的 mail 就是 google.com 的子域名.
只有 mail.google.com 的名稱服務器知道他下面存在的所有主機,所以 Google 會回復是否有一個叫 mail 的子域名簸喂。根名稱服務器對此并不知情毙死。
五、DNS 服務器的類型
一共有三種 DNS 服務器喻鳄。
主 DNS 服務器
這些服務器上存放了特定域名的配置文件扼倘,并且基于此權威地規(guī)定了特定域名的地址。主 DNS 服務器知道全部在它管轄范圍的主機和子域名的地址除呵。
輔助 DNS 服務器
這些服務器作為主 DNS 服務器的備份再菊,也承擔一定負載。主服務器知道輔助 DNS 服務器的存在颜曾,并且會向他們推送更新纠拔。
緩存 DNS 服務器
這些服務器上不存放特定域名的配置文件。當客戶端請求緩存服務器來解析域名時泛豪,該服務器將首先檢查其本地緩存稠诲。如果找不到匹配項便會詢問主服務器。接著這條響應將被緩存起來诡曙。您也可以輕松地將自己的系統用作緩存服務器臀叙。
六、搭建 Linux DNS 服務器
Linux 下有很多實現了 DNS 功能的包岗仑,不過我們只關注 BIND DNS 服務器匹耕。它用于世界上大多數 DNS 服務器。
如果你在使用基于 Red Hat 發(fā)行版的 Linux荠雕,比如 CentOS,可以像這樣安裝:$ dnf -y install bind
如果你使用基于 Debian 的操作系統驶赏,比如 Ubuntu:$ apt-get install bind9
安裝完成之后就可以啟動它并讓它在計算機啟動的時候一并啟動起來炸卑。
$ systemctl start named
$ systemctl enable named
七、配置 BIND
這個服務使用 /etc/named.conf 作為配置文件煤傍。
BIND 在那個文件中使用像下面這樣的一些語句:
· options: 用于全局 BIND 配置盖文。
· logging: 配置哪些需要記錄,哪些需要忽略蚯姆。我推薦你看看 Linux syslog server五续。
· zone: 定義 DNS 區(qū)域。
· include: 在 named.conf 中包含另一個文件龄恋。
在 options 語句中可以看到 BIND 的工作目錄在 /var/named。
zone 語句可用于定義 DNS 區(qū)域郭毕,比如域名 google.com,它包含子域名 mail.google.com 和 analytics.google.com。
上述三個域名 (主域名和子域名) 都有一個由 zone 語句定義的區(qū)域扳肛。
八、定義一個主域服務器
我們知道 DNS 服務器類型有主域名服務器挖息、輔助域名服務器和緩存域名服務器。不同于緩存域名服務器套腹,主域名服務器和輔助域名服務器在應答過程中是處于同等地位的。
在 /etc/named.conf 的配置文件中沉迹,你可以使用如下語法定義一個主域服務器:
zone “l(fā)ikegeeks.com” {
type master;
file likegeeks.com.db
};
包含主要區(qū)域信息的文件存放在 /var/named 目錄下睦疫,從 options 可知鞭呕,這是一個工作目錄蛤育。
注意:軟件服務器或者托管面板會根據你的域名自動為你創(chuàng)建主域服務器信息的文件名,因此如果你的域名是 example.org葫松,那么你主域服務器信息的文件就為 /var/named/example.org.db瓦糕。
類型為 master,也就是說這是一個主域服務器腋么。
九咕娄、定義一個輔助域服務器
同定義一個主域服務器一樣,輔助域服務器的定義稍微有些變化:
zone “l(fā)ikegeeks.com” {
type slave;
masters IP Address list; ;
file likegeeks.com.db
};
對于輔助域服務器來說珊擂,它的域名和主域服務器是一樣的圣勒。上述語法里的的 slave 類型表示這是一個輔助域服務器,“masters IP Address list” 表示輔助域服務器中區(qū)域文件內的信息都是通過主域服務器中區(qū)域文件內的信息復制過來的摧扇。
十圣贸、定義一個緩存服務器
即使你已經配置了主域或者輔助域服務器,你仍有必要(不是必須)定義一個緩存服務器扛稽,因為這樣你可以減少 DNS 服務器的查詢次數吁峻。
在定義緩存服務器之前,你需要先定義三個區(qū)域選擇器在张,第一個:
zone “.” IN {type hint;file “root.hint”;};
zone “.” IN {type hint;file “root.hint”;};
zone “.” IN {type hint;file “root.hint”;};
zone “l(fā)ocalhost” IN {type master;file “l(fā)ocalhost.db”;};
定義第三個區(qū)域是為了反向查找到本地主機用含。這種反向查找是把本地的 IP 地址執(zhí)向本地主機。
zone “0.0.127.in-addr.arpa” IN {
type master;
file “127.0.0.rev”;
};
把這三個區(qū)域信息放到 / etc/named.conf 文件里帮匾,你的系統就可以以緩存服務器來工作了啄骇。但是如何引用類似 likegeeks.com.db, localhost.db, 和 127.0.0.rev 這些文件中的內容呢?
這些文件包含具有某些選項的每個區(qū)域的 DNS 記錄類型。那么辟狈,這些 DNS 記錄類型是什么以及它們是如何寫的?
十一肠缔、DNS 記錄類型
數據庫文件包含諸如 SOA夏跷、NS、A明未、PTR槽华、MX、CNAME 和 TXT 在內的記錄類型趟妥。
我們看看每一種類型都是如何記錄的吧猫态。
SOA:起始授權機構記錄
SOA 記錄按如下形式開始描述一個站點的 DNS 條目:
example.com. 86400 IN SOA ns1.example.com. mail.example.com. (
2017012604 ;serial
86400 ;refresh, seconds
7200 ;retry, seconds
3600000 ;expire, seconds
86400 ;minimum, seconds
)
第一行以域名 example.com 開始,以句號結束——該語句和 / etc/named.conf 文件中的區(qū)域定義是一致的披摄。我們要始終記得亲雪,DNS 配置文件是極其挑剔的。
IN 告訴域名服務器:這是一條網絡記錄疚膊。
SOA 告訴域名服務器:這是一條起始授權機構記錄义辕。
ns1.example.com. 是該文件所在域的域名服務器的完全合格域名(FQDN: Fully Qualified Domain Name)寓盗。
mail.host.com. 是域管理員的郵箱地址。你會發(fā)現這個郵箱地址沒有 “@” 標志基显,而是被句號所取代善炫,并且末尾還有一個句號。
第 2 行是一個序列碼窜醉,它被用來告訴域名服務器文件是什么時候升級的舅桩。因此,如果你對區(qū)域碼做了變更,你必須對這個序列碼進行遞增撒妈。這個序列碼的格式是 YYYYMMDDxx 排监,其中的 xx 是從 00 開始的。
第 3 行是每秒刷新率棋蚌。這個值被用來告訴第二個域名服務器查詢主服務器中的記錄是否已經被更新的頻率。
第 4 行是每秒重試的頻率谷暮。如果第二個服務器多次嘗試連接主域名服務器來進行更新檢測,但無法連接上的時候瓤漏,第二個服務器就會在每秒內重試指定的數值次數颊埃。
第 5 行是超時指示。其目的是為了第二個服務器能將區(qū)域數據緩存下來饥漫。這個值告訴這些服務器如果它們不能連接到主服務器來進行更新罗标,那么它們就會在這個指定數值秒數之后拋棄這個值。
第 6 行告訴緩存服務器皿哨,如果它們不能連接到主域名服務器時纽谒,它們應該在超時前等待多久。
NS: Name Server Records(名稱服務器記錄)
NS 記錄用于指定哪個名稱服務器維護該域的記錄央勒。
你可以這樣編寫的 NS 記錄:
IN NS ns1.example.com.
IN NS ns2.example.com.
并不需要有 2 個 NS 記錄澳化,但是通常偏好有備份名稱服務器。
A 和 AAAA: Address Records(地址記錄)
A 記錄用于提供從主機名到 IP 地址的映射 support IN A 192.168.1.5井濒。
如果你在地址為 192.168.1.5 上的 support.example.com 上有一個主機瑞你,你可以像上面的例子那樣輸入希痴。
請注意,我們所寫的主機并沒有句號虏缸。
PTR: Pointer Records(指針記錄)
PTR 記錄用于執(zhí)行反向名稱解析,允許某人指定 IP 地址然后找出對應的主機名刽辙。
這與 A 記錄的功能相反:192.168.1.5 IN PTR support.example.com.
在這里,我們鍵入具有點號的完整主機名谦秧。
MX: Mail Exchange Records(郵件交換記錄)
MX 記錄告訴其他站點關于你所在域的郵件服務器地址:example.com. IN MX 10 mail.
當然這個域以句號結束撵溃。數字 10 是郵件服務器的重要性標志,如果你擁有多個郵件服務器集歇,其中較小的數字不太重要语淘。
CNAME: Canonical Name Records(權威名稱記錄)
CNAME 記錄允許你為主機名創(chuàng)建別名。當你想提供一個易于記住的名稱時姑蓝,這很有用吕粗。
假設某個站點具有一個主機名為 whatever-bignameis.example.com 的 Web 服務器,并且由于系統是 Web 服務器宙暇,因此可以為主機創(chuàng)建一個名為 www 的 CNAME 記錄或者別名议泵。
你可以創(chuàng)建名為 www.example.com 的域名創(chuàng)建 CNAME 記錄:
whatever-bignameis IN A 192.168.1.5
www IN CNAME whatever-bignameis
第一行通知 DNS 服務器關于別名的位置。第二行創(chuàng)建一個指向 www 的別名型奥。
TXT 記錄
您可以將任何信息存儲到 TXT 記錄中碉京,例如你的聯系方式或者你希望人們在查詢 DNS 服務器時可獲得的任意其他信息。
你可以這樣保存 TXT 記錄:example.com. IN TXT ” YOUR INFO GOES HERE”.
此外,RP 記錄被創(chuàng)建為對 host 聯系信息的顯式容器:example.com. IN RP mail.example.com. example.com血崭。
十二厘灼、DNS TTL 值
在 / etc/named.conf 文件的頂部设凹,這里有一個 $TTL 條目茅姜。
該條目告訴 BIND 每個單獨記錄的 TTL 值(time to live,生存時間值)奋姿。
它是以秒為單位的數值素标,比如 14,400 秒(4 個小時),因此 DNS 服務器最多緩存你的域文件 4 個小時寓免,之后就會向你的 DNS 服務器重新查詢计维。
你可以降低這個值,但是默認值通常是合理的蜈首。除非你知道你正在做什么剑按。
十三疾就、捕獲配置錯誤
當您寫入域文件時猬腰,也許您忘記了一個句號或空格或其他任意錯誤猜敢。
你可以從日志診斷 Linux DNS 服務器錯誤。BIND 服務通過 / var/log/messages 上的錯誤鼠冕,可以使用 tail 命令來查看實時錯誤日志胯盯,須使用 – f 選項:$ tail -f /var /log/messages。
因此憎乙,當你編寫域文件或修改 / etc/named.config 并重新啟動服務時,顯示錯誤之后该押,你可以從日志中輕松識別錯誤類型阵谚。
十四、Host 命令
在你成功添加或修改記錄后奠蹬,可以使用 host 命令查看主機是否正確解析绳矩。
host 命令允許你將主機名解析為 IP 地址:$ host example.com。
此外割以,你可以執(zhí)行反向查找:$ host 192.168.1.5应媚。
十五、Whois 命令
whois 命令用于確定域名的所有權及其擁有者的 e-mail 地址和聯系電話:$ whois example.com.
十六消玄、Rndc 命令
rndc 工具可用于安全地管理名稱服務器丢胚,因為與服務器的所有通信均通過數字簽名進行身份驗證。
此工具用于控制名稱服務器和調試問題兔跌。你可以通過以下方式檢查 Linux DNS 服務器的狀態(tài):$ rndc status峡蟋。
此外,如果你更改任何域 (zone) 文件仅乓,您可以重新加載服務蓬戚,而無須重啟命名服務:$ rndc reload example.com。
在這里裕偿,我們重新加載 example.com 域文件。你可以重新加載所有域:$ rndc reload。
或者你可以添加新的域或更改服務的配置旭绒。你可以重新加載配置,如下所示:$ rndc reconfig重父。
十七忽匈、Linux DNS 解析器
我們已經知道 Linux DNS 服務器的工作原理以及如何配置它。另一部分當然是與 DNS 服務器交互的(正在與 DNS 服務器通信以將主機名解析為 IP 地址的)客戶端郭厌。
在 Linux 上雕蔽,解析器位于 DNS 的客戶端。要配置解析器扇售,可以檢查 / etc/resolv.conf 這個配置文件嚣艇。
在基于 Debian 的發(fā)行版上,可以查看 / etc/resolvconf/resolv.conf.d / 目錄困乒。
/etc/resolv.conf 文件中包含客戶端用于獲取其本地 DNS 服務器地址所需的信息慌洪。
第一個表示默認搜索域,第二個表示主機名稱服務器 (nameserver) 的 IP 地址涌攻。
名稱服務器行告訴解析器哪個名稱服務器可使用频伤。只要你的 BIND 服務正在運行,你就可以使用自己的 DNS 服務器因痛。
使用 Linux DNS 服務器非常簡單。我希望你發(fā)現這篇文章很有用膊升,并且很容易理解谭企。
以上就是馬哥教育今天為大家分享的關于Linux 服務器安裝、配置和維護的方法的文章非区,希望本篇文章能夠對小伙伴們有所幫助盹廷。想要了解更多Linux相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利管怠!