Ubuntu 仅在 DNS 服务器列表中存在路由器的 IP 地址时才解析 DNS

h.i*_*h.i 3 networking dns ubuntu

当我使用路由器 IP 地址以外的 DNS 服务器时,Ubuntu 或任何其他应用程序(Web 浏览器)无法解析主机名。

我使用 Ubuntu 的默认网络管理器 UI 添加了 Google 的 DNS 服务器(8.8.8.8 和 8.8.4.4)。

当我在(8.8.8.8、8.8.4.4 和 192.168.15.1)中添加路由器的 IP 地址时,DNS 解析开始工作。

这是我的相关配置:

解决.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
Run Code Online (Sandbox Code Playgroud)

网络管理器.conf:

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

no-auto-default=<some mac address>,

[ifupdown]
managed=false
Run Code Online (Sandbox Code Playgroud)

/etc/network/interfaces:

auto lo
iface lo inet loopback
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的解决方案,例如从 networkmanager.conf 禁用 dnsmasq,但没有任何效果。

以下是主机和挖掘结果:

host www.google.com 8.8.8.8 - times out.
host www.google.com 192.168.15.1 - works immediatly.
dig @8.8.8.8 www.google.com - times out.
dig @192.168.15.1 www.google.com - works immediatly.
Run Code Online (Sandbox Code Playgroud)

但是,我能够成功 ping 到 8.8.8.8,这意味着至少可以访问服务器。

是否有可能我的路由器或 ISP 拒绝向我的 ISP 在路由器中设置的服务器以外的服务器发出的 DNS 请求?

Eug*_*eck 8

它可能是你的路由器,但也可能是你的 ISP:我看到 ISP 阻止所有 DNS(UDP 53)请求到其他 IP,而不是他们的 DNS - 他们这样做是为了赚钱(让他们的 DNS 解析广告站点故意磨损)或有时出于法律原因(基于 DNS 的站点阻止)。

在你问之前:是的,他们故意破坏 DNS。