问题描述
我已经读过,只有当我的机器有自己的DNS服务器时,才能在我的/etc/resolv.conf
文件中安装nameserver 127.0.1.1
。既然没有,那就会引起问题。但无论我做什么,我都无法摆脱它!
以下是我到目前为止所做的事情:
-
将
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
!这个地址来自哪里?
最佳解决思路
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
并重新启动NetworkManager服务。
sudo service network-manager restart
在此模式下,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