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 baidu.com。該選項可以用來指定多個域名,中間用空格或tab鍵隔開。其作用是當訪問的域名不能被DNS解析時,resolver會將該域名加上search指定的參數,重新請求DNS,直到被正確解析或試完search指定的域名列表為止。比如:
#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的常見配置。語法格式如下:
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
以上就是淺析Linux resolv.conf的詳細內容,更多關于Linux resolv.conf的資料請關注腳本之家其它相關文章!