DNS 解析配置

DNS 解析配置

我给大家讲一下我的一个小故事:

现在,我在实验室中使用 Ubuntu 16.04 LTS 发行版。安装 Ubuntu 后,我尝试通过谷歌搜索检查我的互联网访问。但这是不可能的。所以我首先尝试 ping 谷歌的服务器:

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

相关内容