Meh*_*ran 63 networking resolv.conf resolvconf 14.04
我已经读过,只有当我的机器有自己的 DNS 服务器时,我才应该nameserver 127.0.1.1在我的/etc/resolv.conf文件中。既然没有,拥有它就会导致问题。但无论我做什么,我都无法摆脱它!
以下是我迄今为止所做的事情:
nameserver 192.168.1.3到/etc/resolvconf/resolv.conf.d/base文件。(192.168.1.3 是我们网络的 DNS)。sudo resolvconf --enable-updates。sudo resolvconf -u。sudo service network-manager restart只是为了确保)。然而,当我打开/etc/resolv.conf文件时,它说:nameserver 127.0.1.1!有谁知道出了什么问题?
请注意,它实际上是127.0.1.1!我不知道为什么不是127.0.0.1!
即使我/etc/resolv.conf手动更新并将其更改为其他任何内容,它sudo resolvconf -u也会将其恢复为127.0.1.1! 这个地址是哪里来的?
270*_*974 105
NetworkManager 是(通过 resolvconf 实用程序)将地址127.0.1.1插入resolv.conf. NM 仅在配置为启动 dnsmasq 程序的实例以用作本地转发名称服务器时才插入该地址。该 dnsmasq 实例侦听地址 127.0.1.1 处的查询。
如果您不想使用本地转发名称服务器,则将 NetworkManager 配置为不启动 dnsmasq 实例并且不插入该地址。在/etc/NetworkManager/NetworkManager.conf注释掉这一行dns=dnsmasq
sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
Run Code Online (Sandbox Code Playgroud)
并重新启动 NetworkManager 服务。
sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)
在这种模式下,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
Run Code Online (Sandbox Code Playgroud)
jdt*_*ood 11
可能是 resolvconf 配置错误。如果您一直在玩弄其配置文件而没有真正了解 resolvconf 和 NetworkManager 的工作原理,则尤其可能出现这种情况。
有关背景信息,请阅读 resolvconf 文档和 Stéphane Graber 的博客文章。
https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/
首先你应该知道默认情况下 Ubuntu Desktop 和 Ubuntu Server 都安装并激活了 resolvconf。Resolvconf 提供了一个框架,用于以有序和可逆的方式动态更新 /etc/resolv.conf 文件。
其次,您应该知道 Ubuntu 桌面默认安装并激活了 NetworkManager。默认情况下,NetworkManager 启动一个 dnsmasq 实例作为本地转发名称服务器。这个 NetworkManager 控制的 dnsmasq 实例在 127.0.1.1 侦听查询。当 NetworkManager 启动 dnsmasq 实例时,它告诉 resolvconf 将地址127.0.1.1插入到 resolv.conf 中。如另一个答案中所述,如果您将 NetworkManager 配置为不启动本地转发名称服务器实例,则它不会启动本地转发名称服务器,并且不会告诉 resolvconf 将地址127.0.1.1插入到 resolv.conf 中。
此默认配置工作正常,因此除非您的情况特殊,否则应恢复默认配置。
要恢复默认配置,请注意
#字符开头../run/resolvconf/resolv.conf为此,请执行以下命令。
sudo su
dpkg-reconfigure resolvconf # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# 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' > head
rm -f base tail original
:> base
:> tail
Run Code Online (Sandbox Code Playgroud)
NetworkManager的原始配置是有
[main]
...
dns=dnsmasq
...
Run Code Online (Sandbox Code Playgroud)
在 /etc/NetworkManager/NetworkManager.conf 中。通过注释掉该dns=dnsmasq行来禁用 NetworkManager 控制的本地转发名称服务器是一个合理的选择。
[main]
...
#dns=dnsmasq
...
Run Code Online (Sandbox Code Playgroud)
完成所有这些操作后,建议重新启动机器以清除过时的名称服务器信息记录。
sudo reboot
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91785 次 |
| 最近记录: |