Linux
主機文件似乎被忽略了
我有幾乎全新的 Ubuntu 桌面盒。作業系統是兩週前安裝的,並從業力儲存庫更新。上週我的 DNS 沒有問題。但本週發生了一些變化。我不確定什麼和何時,也不確定我是否更改了任何配置。
所以現在我遇到了一些非常奇怪的情況。根據日誌名稱解析應該可以正常工作。
/etc/hosts
127.0.0.1 localhost test 127.0.1.1 desktop
/etc/host.conf
order hosts,bind multi on
/etc/resolv.conf
# Generated by NetworkManager search search servers obtained via DHCP nameserver 192.168.0.3
/etc/nsswitch.conf
passwd: compat group: compat shadow: compat hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
但如果事實並非如此。
user@test ~>ping 測試
PING localhost (127.0.0.1) 56(84) bytes of data. [skip]
ping 沒問題。
使用者@測試 ~> 主機測試
test.mydomain.com has address xx.xxx.161.201
我懷疑 NetworkManager 可能會導致這種不當行為,但不知道從哪裡開始檢查它。有什麼想法、建議嗎?
使用此配置,大多數應用程序將很樂意使用您從
/etc/hosts
.不過
host
不看/etc/nsswitch.conf
。這是設計使然,而不是偶然,因為host
它專門是一個 DNS 查找程序。/etc/hosts
不是 DNS,它(大部分)是我們在擁有 DNS之前使用的。
dig
和nslookup
- 它們也是特定於 DNS 的。
該
host
命令(與dig
and一起nslookup
)是bind
DNS 實用程序的一部分。作為 DNS 解析器實用程序,它單獨進行 DNS 解析。如果您有興趣從任何
libnss
驅動的數據儲存中獲取條目,您可以使用該getent
程序。例如,要獲取主機條目,請像這樣使用它:getent hosts google.com
這遵循按順序列出的解決
hosts:
順序/etc/nsswitch.conf
,其中包括/etc/hosts
是否將“文件”列為選項之一。