簡介
有時在執行網絡命令時會遇到can’t find錯誤,比如nslookup www.baidu.com。這通常是因為無法解析到域名的IP地址,可能是由于系統的DNS配置問題。如果使用的是VMware虛擬機,這種情況尤為常見。解決此問題的方法有兩種:
- 將虛擬機的網絡適配器改為橋接模式。
- 配置系統的DNS設置。
配置DNS的方法有三種:通過網卡配置、編輯resolv.conf文件和hosts文件。
網卡配置: 使用ifconfig命令查看網卡序號,通常是eth0。然后編輯vi /etc/sysconfig/network-scripts/ifcfg-eth0配置文件,添加DNS服務器地址。不過,在使用Kali系統(基于Ubuntu)時,并沒有/etc/sysconfig/目錄。
resolv.conf文件: 編輯vim /etc/resolv.conf文件,在文件末尾添加nameserver后跟DNS服務器地址。我通常會添加宿主機的地址。
文件配置詳解:
- nameserver表示使用該地址指定的主機作為域名服務器,域名服務器按文件中出現的順序查詢,只有當第一個nameserver無響應時才查詢下一個。至少需要指定一個nameserver,否則系統將無法找到DNS服務器。
- domain聲明主機的域名,許多程序會用到它,如郵件系統。
- search指定域名查詢順序。當查詢沒有域名的主機時,系統會在search聲明的域中查找。
- sortlist參數為網絡/掩碼對,允許對域名結果進行特定排序。
- 如果domain和search同時存在,則需要指定sortlist。
hosts文件: 編輯vim /etc/hosts文件,添加解析記錄,如下圖所示:
第一列是IP地址,第二列是域名,其中127.0.0.1有兩條解析記錄。后三行為IPv6地址。這個文件是用來添加解析記錄的,而不是配置DNS服務器地址。
host.conf文件: 該文件位于/etc/host.conf,內容如下:
multi表示是否允許/etc/hosts文件中主機指定多個IP地址,on允許,off不允許。
優先級: 系統會優先使用一種方式進行DNS解析,如果不成功則使用下一種方式。解析順序為:hosts文件 > 網卡配置 > resolv.conf文件。