Linux resolv.conf簡介
1.簡介
resolv.conf是各種作業系統域名系統解析器(DNS Resolver)的配置檔案。每當一個程式需要通過域名來訪問Internet上面的其它主機時,需要利用Resolver庫函式將域名轉換成對應的IP,然後才可進行訪問。
注意,域名系統解析器(DNS Resolver)並非一個可執行程式,而是C語言的一系列庫函式,用於解析resolv.conf獲取域名對應的IP。關於Resolver的解釋,可以使用man 3 resolver
檢視幫助手冊。
2.配置詳情
resolv.conf的配置主要包含如下幾項:
(1)nameserver x.x.x.x。用於配置DNS伺服器,可以使用多個nameserver指定多個DNS伺服器。
(2)search domain1 domain2
#ping news PING news.baidu.com (74.125.128.101) 56(84) bytes of data. 64 bytes from hg-in-f101.1e100.net (74.125.128.101): icmp_req=1 ttl=47 time=78.9 ms 64 bytes from hg-in-f101.1e100.net (74.125.128.101): icmp_req=2 ttl=47 time=63.6 ms
(3)domain mydomain.com。用於定義本地域名。在沒有設定search的情況下,search預設為domain的值。
(4)sortlist IP/netmask IP。允許將得到的域名結果進行特定的排序。它的引數為IP或掩碼-IP對,掩碼是可選的,使用斜槓分隔。比如:
sortlist 130.155.160.0/255.255.240.0 130.155.0.0
(5)options。用於配置resolver的內建變數,不是resolv.conf的常見配置。語法格式如下:
options [option] ...
option部分取值如下:
ndots:[n]:設定呼叫res_query( )解析域名時域名至少包含的點的數量
timeout:[n]:設定等待dns伺服器返回的超時時間,單位秒。預設值RES_TIMEOUT=5,參見<resolv.h>
attempts:[n]:設定resolver向DNS伺服器發起域名解析的請求次數。預設值RES_DFLRETRY=2,參見<resolv.h>
rotate:在_res.options中設定RES_ROTATE,採用輪詢方式訪問nameserver,實現負載均衡
no-check-names:在_res.options中設定RES_NOCHECKNAME,禁止對傳入的主機名和郵件地址進行無效字元檢查,比如下劃線(_),非ASCII字元或控制字元
3.注意事項
(1)search和domain不能共存,如果同時存在,以最後出現的為準。
(2)分號(;)或井號(#)開頭的行為註釋行;
(3)每一個配置項必須單獨成行,且以關鍵詞開頭,空格分隔配置值。
4.示例
下面是一個resolv.conf的內容。
nameserver 202.102.192.68
nameserver 202.102.192.69
search qq.com baidu.com
options no-check-names
options attempts:1
options timeout:1
參考文件
[1]man 3 resolver
[2]man 5 resolv.conf
[3]resolv.conf:search、domain、nameserver解釋