Linux教程:Linux 服務器安裝、配置和維護的方法
今天馬哥教育要跟大家分享的文章一篇Linux教程,關于Linux服務器裝置、配置和維護的方法。熟悉Linux運維系統小伙伴們都知道。每個 IP地址都可以有一個主機名。 今天我將討論 DNS服務器,特別是Linux DNS服務器,及其如何裝置、配置和維護它下面我一起來看一看吧。
一、/etc/host文件
沒有 DNS服務器的情況下,每個系統在外地網絡上保管其主機名和相應 IP地址列表的副本是合理的特別是沒有互聯網連接的小型站點上。
Linux系統中,這個列表就是/etc/host文件。即使你沒有 DNS服務器或 DNS服務器不可用,該文件也可以使用 /etc/host文件將 IP地址轉換為名稱。
也許你已經有 DNS服務器了但你也會因為其它原因而想保管這個文件。例如,系統可能需要在向外部查詢之前在外地查找 DNS服務器的IP地址;這意味著系統在查詢 DNS服務器之前先檢索該文件,如果查找到對應的域則無須查詢任何 DNS服務器直接將其轉換為 IP地址。
試試編輯下 /etc/host文件,并添加以下信息:127.0.0.1google.com.
然后,返回你瀏覽器,輸入 google.com看看結果如何。如果你系統上安裝了Apach并且外地主機正在運行,瀏覽器會顯示 localhost索引頁,而不是Googl頁面。
作為確認,可以將 google.com映射到任何網站的任何其他IP地址并查看結果。
因此這個文件所做的將 IP地址轉換成名字,但這僅僅是同一互相連接的網絡下。那么外部網絡和眾多系統的所有記錄是如何維護的呢?
每個人都需要維護自己的/etc/host文件并自己更新嗎?
更為穩健的域名服務是DNS服務器。
二、域名
當你訪問網站時,可以輸入 FQDNFulliQualifiDomainName完全限定域名)或類似 likegeeks.com或 www.google.com域名。域名中從右到左的兩個點之間的每個文本依次是頂級域組件、二級域組件和三級域組件。
所以,com頂級域名組件;googl二級域組件;而 www三級域名組件。
實際上,當你訪問任何網站時,瀏覽器會默認在域的末尾添加一個不可見的點,因此該域將像 www.google.com.一樣。該點被稱為根域。
該點是由一大堆稱為根域名服務器的特殊服務器管理的截止這篇文章發表前,世界上有 13個根域名服務器。可以把他當成互聯網的大腦 – 如果他失效了世界上就沒有互聯網了
為什么是13呢?因為如果世界的某處地震可能會破壞一個根服務器,所以其他服務器可以繼續提供服務直到受影響的服務器重新上線。
這些根名稱服務器按字母順序命名,名稱如 a.root-server.netb.root-server.net等。
三、頂級域名 或稱作一級域名 TLD
已經見過頂級域名的組成局部,如 com可以認為,頂級域名為 DNS命名空間提供分類組織。
頂級域名(TLD根據地理或功能方面分為幾類。
截止本文撰寫時,網上有 800多個頂級域名。
頂級域名類別有:
通用的頂級域名如:org,.com,.net,.gov,.edu等等
國家代碼頂級域名如:us,.ca等,分別對應美國和加拿大的國家代碼
新的品牌頂級域名,允許組織創建最多 64個字符的TLD如:.Linux,.microsoft,.companynam等
基礎架構頂級域名如:.arpa
四、子域名
當你訪問一個類似 mail.google.com這樣的網站,這里的mail就是google.com子域名.
只有 mail.google.com名稱服務器知道他下面存在所有主機,所以 Googl會回復是否有一個叫 mail子域名。根名稱服務器對此并不知情。
五、DNS服務器的類型
一共有三種 DNS服務器。
主 DNS服務器
這些服務器上存放了特定域名的配置文件,并且基于此權威地規定了特定域名的地址。主 DNS服務器知道全部在管轄范圍的主機和子域名的地址。
輔助 DNS服務器
這些服務器作為主 DNS服務器的備份,也承擔一定負載。主服務器知道輔助 DNS服務器的存在并且會向他推送更新。
緩存 DNS服務器
這些服務器上不存放特定域名的配置文件。當客戶端請求緩存服務器來解析域名時,該服務器將首先檢查其本地緩存。如果找不到匹配項便會詢問主服務器。接著這條響應將被緩存起來。您也可以輕松地將自己的系統用作緩存服務器。
六、搭建 LinuxDNS服務器
Linux下有很多實現了DNS功能的包,不過我只關注 BINDDNS服務器。用于世界上大多數 DNS服務器。
如果你使用基于 RedHat發行版的Linux比方 CentOS可以像這樣安裝:$dnf-yinstalbind
如果你使用基于 Debian操作系統,比方 Ubuntu$apt-getinstalbind9
裝置完成之后就可以啟動它并讓它計算機啟動的時候一并啟動起來。
$systemctlstartnamed
$systemctlenablnamed
七、配置 BIND
這個服務使用 /etc/named.conf作為配置文件。
BIND那個文件中使用像下面這樣的一些語句:
options:用于全局 BIND配置。
logging:配置哪些需要記錄,哪些需要忽略。推薦你看看 Linuxsyslogserver
zone:定義 DNS區域。
include:named.conf中包括另一個文件。
option語句中可以看到BIND工作目錄在/var/nam
zon語句可用于定義 DNS區域,比如域名 google.com包括子域名 mail.google.com和 analytics.google.com
上述三個域名 主域名和子域名)都有一個由 zone語句定義的區域。
八、定義一個主域服務器
知道 DNS服務器類型有主域名服務器、輔助域名服務器和緩存域名服務器。不同于緩存域名服務器,主域名服務器和輔助域名服務器在應答過程中是處于同等地位的
/etc/named.conf配置文件中,可以使用如下語法定義一個主域服務器:
zon"likegeeks.com"{
typmaster;
fillikegeeks.com.db
};
包括主要區域信息的文件存放在/var/nam目錄下,從 option可知,這是一個工作目錄。
注意:軟件服務器或者托管面板會根據你域名自動為你創建主域服務器信息的文件名,因此如果你域名是example.org那么你主域服務器信息的文件就為 /var/named/example.org.db
類型為 master也就是說這是一個主域服務器。
九、定義一個輔助域服務器
同定義一個主域服務器一樣,輔助域服務器的定義稍微有些變化:
zon"likegeeks.com"{
typslave;
mastIPAddresslist;;
fillikegeeks.com.db
};
對于輔助域服務器來說,域名和主域服務器是一樣的上述語法里的slave類型表示這是一個輔助域服務器,masterIPAddresslist表示輔助域服務器中區域文件內的信息都是通過主域服務器中區域文件內的信息復制過來的
十、定義一個緩存服務器
即使你已經配置了主域或者輔助域服務器,仍有必要(不是必需)定義一個緩存服務器,因為這樣你可以減少 DNS服務器的查詢次數。
定義緩存服務器之前,需要先定義三個區域選擇器,第一個:
zon"."IN{typehint;fil"root.hint";};
zon"."IN{typehint;fil"root.hint";};
zon"."IN{typehint;fil"root.hint";};
zon"localhost"IN{typemaster;fil"localhost.db";};
定義第三個區域是為了反向查找到外地主機。這種反向查找是把本地的IP地址執向本地主機。
zon"0.0.127.in-addr.arpa"IN{
typmaster;
fil"127.0.0.rev";
};
把這三個區域信息放到/etc/named.conf文件里,系統就可以以緩存服務器來工作了但是如何引用類似 likegeeks.com.db,localhost.db,和 127.0.0.rev這些文件中的內容呢?
這些文件包括具有某些選項的每個區域的DNS記錄類型。那么,這些 DNS記錄類型是什么以及它如何寫的?
十一、DNS記錄類型
數據庫文件包括諸如 SOA NSAPPMXCNA ME和 TXT內的記錄類型。
看看每一種類型都是如何記錄的吧。
SOA 起始授權機構記錄
SOA 記錄按如下形式開始描述一個站點的DNS條目:
example.com.86400INSOA 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文件中的區域定義是一致的要始終記得,DNS配置文件是極其挑剔的
IN告訴域名服務器:這是一條網絡記錄。
SOA 告訴域名服務器:這是一條起始授權機構記錄。
ns1.example.com.該文件所在域的域名服務器的完全合格域名(FQDN:FulliQualifiDomainName
mail.host.com.域管理員的郵箱地址。會發現這個郵箱地址沒有 @標志,而是被句號所取代,并且末尾還有一個句號。
第 2行是一個序列碼,被用來告訴域名服務器文件是什么時候升級的因此,如果你對區域碼做了變卦,必需對這個序列碼進行遞增。這個序列碼的格式是YYYYMMDDxx其中的xx從 00開始的
第 3行是每秒刷新率。這個值被用來告訴第二個域名服務器查詢主服務器中的記錄是否已經被更新的頻率。
第 4行是每秒重試的頻率。如果第二個服務器多次嘗試連接主域名服務器來進行更新檢測,但無法連接上的時候,第二個服務器就會在每秒內重試指定的數值次數。
第 5行是超時指示。其目的為了第二個服務器能將區域數據緩存下來。這個值告訴這些服務器如果它不能連接到主服務器來進行更新,那么它就會在這個指定數值秒數之后拋棄這個值。
第 6行告訴緩存服務器,如果它不能連接到主域名服務器時,應該在超時前等待多久。
NS:NameServerRecord名稱服務器記錄)
NS記錄用于指定哪個名稱服務器維護該域的記錄。
可以這樣編寫的NS記錄:
INNSns1.example.com.
INNSns2.example.com.
并不需要有 2個 NS記錄,但是通常偏好有備份名稱服務器。
A 和 AA A A :AddressRecord地址記錄)
A 記錄用于提供從主機名到IP地址的映射 supportINA192.168.1.5
如果你地址為 192.168.1.5上的support.example.com上有一個主機,可以像上面的例子那樣輸入。
請注意,所寫的主機并沒有句號。
PP:PointerRecord指針記錄)
PP記錄用于執行反向名稱解析,允許某人指定 IP地址然后找出對應的主機名。
這與 A記錄的功能相反:192.168.1.5INPPsupport.example.com.
這里,鍵入具有點號的完整主機名。
MX:MailExchangRecord郵件交換記錄)
MX記錄告訴其他站點關于你所在域的郵件服務器地址:example.com.INMX10mail.
當然這個域以句號結束。數字 10郵件服務器的重要性標志,如果你擁有多個郵件服務器,其中較小的數字不太重要。
CNA ME:CanonNameRecord權威名稱記錄)
CNA ME記錄允許你為主機名創建別名。當你想提供一個易于記住的名稱時,這很有用。
假設某個站點具有一個主機名為 whatever-bignameis.example.comWeb服務器,并且由于系統是Web服務器,因此可以為主機創建一個名為 wwwCNA ME記錄或者別名。
可以創建名為 www.example.com域名創立 CNA ME記錄:
whatever-bignameiINA192.168.1.5
wwwINCNA MEwhatever-bignameis
第一行通知 DNS服務器關于別名的位置。第二行創建一個指向 www別名。
TXT記錄
您可以將任何信息存儲到TXT記錄中,例如你聯系方式或者你希望人們查詢 DNS服務器時可獲得的任意其他信息。
可以這樣保管 TXT記錄:example.com.INTXTYOURINFOGOESHERE.
此外,RP記錄被創建為對 host聯系信息的顯式容器:example.com.INRPmail.example.com.example.com
十二、DNSTTL值
/etc/named.conf文件的頂部,這里有一個 $TTL條目。
該條目告訴 BIND每個單獨記錄的TTL值(timetolive生存時間值)
以秒為單位的數值,比方 14,400秒(4個小時)因此 DNS服務器最多緩存你域文件 4個小時,之后就會向你DNS服務器重新查詢。
可以降低這個值,但是默認值通常是合理的除非你知道你正在做什么。
十三、捕獲配置錯誤
當您寫入域文件時,也許您忘記了一個句號或空格或其他任意錯誤。
可以從日志診斷 LinuxDNS服務器錯誤。BIND服務通過 /var/log/messag上的錯誤,可以使用 tail命令來檢查實時錯誤日志,須使用 -f選項:$tail-f/var/log/messag
因此,當你編寫域文件或修改 /etc/named.config偏重新啟動服務時,顯示錯誤之后,可以從日志中輕松識別錯誤類型。
十四、Host命令
勝利添加或修改記錄后,可以使用 host命令檢查主機是否正確解析。
host命令允許你將主機名解析為 IP地址:$hostexample.com
此外,可以執行反向查找:$host192.168.1.5
十五、Whoi命令
whoi命令用于確定域名的所有權及其擁有者的e-mail地址和聯系電話:$whoiexample.com.
十六、Rndc命令
rndc工具可用于平安地管理名稱服務器,因為與服務器的所有通信均通過數字簽名進行身份驗證。
此工具用于控制名稱服務器和調試問題。可以通過以下方式檢查 LinuxDNS服務器的狀態:$rndcstatu
此外,如果你更改任何域 zone文件,您可以重新加載服務,而無須重啟命名服務:$rndcreloadexample.com
這里,重新加載 example.com域文件。可以重新加載所有域:$rndcreload
或者你可以添加新的域或更改服務的配置。可以重新加載配置,如下所示:$rndcreconfig
十七、LinuxDNS解析器
已經知道 LinuxDNS服務器的工作原理以及如何配置它另一部分當然是與 DNS服務器交互的正在與 DNS服務器通信以將主機名解析為 IP地址的客戶端。
Linux上,解析器位于 DNS客戶端。要配置解析器,可以檢查 /etc/resolv.conf這個配置文件。
基于 Debian發行版上,可以檢查 /etc/resolvconf/resolv.conf.d/目錄。
/etc/resolv.conf文件中包括客戶端用于獲取其本地 DNS服務器地址所需的信息。
第一個表示默認搜索域,第二個表示主機名稱服務器 nameservIP地址。
名稱服務器行告訴解析器哪個名稱服務器可使用。只要你BIND服務正在運行,就可以使用自己的DNS服務器。
使用 LinuxDNS服務器非常簡單。希望你發現這篇文章很有用,并且很容易理解。
以上就是馬哥教育今天為大家分享的關于Linux服務器裝置、配置和維護的方法的文章,希望本篇文章能夠對小伙伴們有所協助。想要了解更多Linux相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!
聲明:文章來源于網絡,侵刪!