![為什麼 resolv.conf 不記得 dns 位址?](https://rvso.com/image/1108685/%E7%82%BA%E4%BB%80%E9%BA%BC%20resolv.conf%20%E4%B8%8D%E8%A8%98%E5%BE%97%20dns%20%E4%BD%8D%E5%9D%80%EF%BC%9F.png)
我已經安裝dnsmasq
並添加nameserver 127.0.0.1
到該resolv.conf
文件中,以便我可以在我的 apache 配置中使用通配符。但每次我重新啟動電腦或更改 Wi-Fi 連線時,我都必須重新添加它才能正常工作。
為什麼會發生這種情況以及我怎麼能讓它發揮作用?
答案1
如果您執行的是 12.04 之前的 Ubuntu 系統,且尚未升級到 12.04 或更高版本,或者您已刪除 resolvconf 軟體包,請安裝 resolvconf 軟體包。
sudo apt-get install resolvconf
如果已安裝 resolvconf,請確保 /etc/resolv.conf 是指向 ../run/resolvconf/resolv.conf 的符號連結。
sudo dpkg-reconfigure resolvconf
安裝 dnsmasq 軟體套件(不要與 dnsmasq-base 軟體包混淆)後,您不需要編輯 /etc/resolv.conf。當 dnsmasq 啟動時,dnsmasq 初始化腳本會(透過 resolvconf)將「127.0.0.1」加到 resolv.conf,前提是未在 /etc/default/dnsmasq 中IGNORE_RESOLVCONF
設定的值。yes
懷疑者請閱讀/etc/init.d/dnsmasq。
PS 在 Ubuntu 12.04 中存在著一個複雜的因素。 NetworkManager 預設啟動一個 dnsmasq 進程,專門偵聽 127.0.0.1。這與「獨立」dnsmasq 進程衝突;兩者中只有一個可以啟動。這是一個已知錯誤 #959037,已在 Ubuntu 12.10 中修復(透過將 NM-dnsmasq 的監聽位址移至 127.0.1.1)。如果您仍在執行 Ubuntu 12.04 並且想要執行獨立 dnsmasq,那麼您應該停用 NetworkManager 控制的 dnsmasq(透過在 /etc/NetworkManager/NetworkManager.conf 中註解掉「dns=dnsmasq」)或將獨立 dnsmasq 配置為不執行在127.0.0.1 收聽。
答案2
您需要在網路管理員中指定您的首選 DNS 伺服器。否則,它將繼續覆蓋設定檔。看更改 DNS IP 的正確方法是什麼?