连接信息显示正确的 DNS,但 resolvconf 显示不正确

连接信息显示正确的 DNS,但 resolvconf 显示不正确

问题:

我的 DNS 被我的 ISP 劫持了,当我进入网页时,有时它会将我重定向到“下载账单”页面。

我试图找出为什么会发生这种情况,然后我发现了其他原因。我的路由器上有 DD-WRT,使用 DNSMASQ 进行 DHCP 和 DNS,使用固定 DNS IP(开放 DNS)。

但在 Ubuntu 中,我的 resolv.conf 显示它正在使用127.0.0.1( 也是如此nslookup),因此没有查询路由器?但随后Connection Info显示了正确的信息。

这里有什么问题?

在此处输入图片描述

在此处输入图片描述

答案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 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

答案2

dnsmasq 是个好东西;我不会禁用它:https://help.ubuntu.com/community/Dnsmasq

本地 DNS 缓存可以加快互联网浏览速度,因为用户的浏览器在查找计算机以前访问过的域名时不需要访问域名服务器。

另一方面,如果您的 ISP 提供的 DNS 名称服务器被劫持,那么,无论如何都不要使用它!您可以在网络管理器中指定备用 DNS 名称服务器,如下所示:

在此处输入图片描述

相关内容