![為什麼 dnsmasq 將我的路由器 IP 放入 /etc/resolv.conf 而不是 127.0.0.1?](https://rvso.com/image/31670/%E7%82%BA%E4%BB%80%E9%BA%BC%20dnsmasq%20%E5%B0%87%E6%88%91%E7%9A%84%E8%B7%AF%E7%94%B1%E5%99%A8%20IP%20%E6%94%BE%E5%85%A5%20%2Fetc%2Fresolv.conf%20%E8%80%8C%E4%B8%8D%E6%98%AF%20127.0.0.1%EF%BC%9F.png)
我在各種情況下都遇到了 DNS 解析問題,這些問題似乎可以追溯到我的網路配置。
我只在兩個 Linux 安裝(Lubuntu 12.04 和 12.10)上運行安裝dnsmasq-base
。dnsmasq
我沒有做任何特別的配置dnsmasq
,但我認為我之前所做的一些其他更改可能會導致升級時的配置不正確。
執行 12.04 的電腦「A」上的工作設定設定/etc/resolv.conf
為使用 127.0.1.1(其中/etc/hosts
設定為$HOSTNAME
) 在電腦「B」上,某些應用程式(例如 OpenVPN)遇到 DNS 解析問題,/etc/resolv.conf
為使用127.0.1.1這是我的網關智慧財產權。只有某些應用程式受到影響。例如,網頁瀏覽就可以正常運作。
知道這種差異是否是 DNS 解析問題的原因,以及為什麼「B」的行為不同?
編輯:
“A”和“B”都在運行dnsmasq
,都使用 DHCP 來取得 DNS 配置,而我只使用 dnsmasq 作為 DNS。
沒有/etc/dnsmasq.conf
文件。我知道這在跑步時是正常的dnsmasq-base
。
的內容/etc/resolvconf
似乎是相同的。沒有無關/遺失的檔案。
抱歉,我無法更具體地說明問題的本質。 「DNS 解析問題」是我與 VPN 提供者的技術支援討論的終點。
答案1
在機器 B 上,if /etc/NetworkManager/NetworkManager.conf
contains dns=dnsmasq
thenresolv.conf
應該只包含一個「nameserver」行,即nameserver 127.0.1.1
. 127.0.1.1 是 NetworkManager 控制的本機轉送名稱伺服器偵聽的位址。 NetworkManager 提供要使用的名稱伺服器轉送位址。
嘗試在機器 B上sudo dpkg-reconfigure resolvconf
運行。/etc/resolv.conf
../run/resolvconf/resolv.conf
。
您是否正在執行第三方 VPN 用戶端?眾所周知,此類客戶端/etc/resolv.conf
在退出時會破壞並且不會恢復它。你可能需要做sudo dpkg-reconfigure resolvconf
每次阻止這樣的客戶時,
另一件要嘗試的事情是:註解掉dns=dnsmasq
然後/etc/NetworkManager/NetworkManager.conf
重新啟動。這會停用 NetworkManager 控制的本機轉送名稱伺服器,該伺服器存在一些已知問題。