DNS解析配置

DNS解析配置

我跟大家講一個我的小故事:

現在,我在實驗室中使用 Ubuntu 16.04 LTS 發行版。安裝 Ubuntu 後,我嘗試透過谷歌搜尋來檢查我的網路存取情況。然而那是不可能的。首先我嘗試 ping Google 的伺服器:

ping 8.8.8.8

第一次 ping 成功。其次,我嘗試 ping 雅虎網站:

ping yahoo.com

答案是名稱未知,所以我決定檢查 /etc 中的 resolv.conf 檔案:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search <www.some-sites>

問題出在名稱伺服器。我的合作者告訴我,他們已經複製了 /etc/resolvconf/resolv.config.d/base 中的一些行:

domain bla.bla
search <www.some-sites>
nameserver 111.222.3333.4444
nameserver 555.666.7777.8888

他們建議我重新啟動或只運行以下命令

resolvconf --enable-updates
resolvconf -u

當我檢查 /etc/resolv.conf 時,它又與開始時相同

 Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search <www.some-sites>

那麼我如何輸入網域名稱和我的兩個新的特定名稱伺服器?我真的不知道如何配置介面以及是否可能。我也無法理解為什麼會發生這種情況,因為 base 是一個應該複製到 resolv.conf 檔案中的檔案。你能解釋為什麼會發生這個錯誤嗎?

謝謝

答案1

NetworkManager 是(透過 resolvconf 實用程式)將位址插入127.0.1.1resolv.conf.只有當 NM 配置為啟動 dnsmasq 程式的執行個體以充當本機轉送名稱伺服器時,才會插入該位址。此 dnsmasq 實例偵聽位址 127.0.1.1 的查詢。

如果您想查看DNS目前使用的女巫,請輸入命令

nmcli device show <interfacename> | grep IP4.DNS

您可以DNS為每個連線設定不同的參數

如果您不想使用本機轉送名稱伺服器,則將 NetworkManager 設定為不啟動 dnsmasq 實例,也不插入該位址。註解掉/etc/NetworkManager/NetworkManager.conf該行dns=dnsmasq

sudo nano /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

並重新啟動 NetworkManager 服務。

sudo systemctl restart network-manager

在此模式下,NetworkManager 更新/etc/resolv.conf(仍透過 resolvconf)以包含 NetworkManager 用於活動連線的名稱伺服器位址。

如果您想要停用 resolvconf 更新 resolv.conf 的機制並僅使用靜態 resolv.conf 文件,請執行下列操作。

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo nano /etc/resolv.conf   # Create static file

# Content of static resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8

相關內容