DNS Ubuntu 20.04:host、dig、nslookup 有效,浏览器、curl、ping 无效

DNS Ubuntu 20.04:host、dig、nslookup 有效,浏览器、curl、ping 无效

重启后,我在 Ubuntu 20.04 上解析 DNS 时遇到严重问题。如文中所述,

  1. host、dig 和 nslookup 可以将域名解析为 IP,例如 dig @8.8.8.8 google.com dig @8.8.8.8 google.com +tcp
  2. 我可以使用 IP ping 外部世界
  3. 同一 wifi 上的其他设备工作正常但是,浏览器(ERR_NAME_NOT_RESOLVED)、curl 等服务(无法解析主机:www.google.com) 或 ping 域不起作用。

我将本地路由器 DNS 更改为 8.8.8.8(没有改变任何东西),并尝试了在这里找到的一些其他东西,但 8 个多小时都没有成功。我安装了 VPN(没有 nordvpn,只有 uni),删除了所有我能找到的东西,但没有任何变化……

浏览器和这些工具的 DNS 请求有什么区别?dig 的 A、AAAA、NX 看起来都很好。对我来说完全没有意义。

答案1

讨论后,我会尝试给出解释。要点:安装并删除了 VPN 客户端。名称解析停止工作。

dig @8.8.8.8 google.com询问服务器 8.8.8.8 分配给 google.com 的 IP 是什么。
dig google.com不应该起作用。

Linux 会查看文件/etc/nsswitch.conf如何将名称解析为 IP。
hosts: files这意味着它将查看/etc/hosts,完成。
hosts: files dns意味着它将调查/etc/hosts,然后通过解析conf(或更多network-manager,今天)。

它可能更复杂一些:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

如果您已经通过 dpkg(带有dpkg -i或使用 的.deb 包apt)安装了 VPN,则原始文件很可能/etc/nsswitch.conf仍在 /etc 中,名为 之类的名称/etc/nsswitch.dpkg-old

如果你需要原始文件,你随时可以通过搜索下载https://packages.ubuntu.com/内容:https://packages.ubuntu.com/search?suite=focal&arch=any&mode=exactfilename&searchon=contents&keywords=nsswitch.conf

  • 下载 .deb 文件(在本例中libc-bin或者glibc 源应该差不多)
  • 提取它(它只是一个档案,ar -x <filename>.deb
  • 比较原版和你的
  • 修复所需的行

我故意省略network-manager了深度或netplan.io

相关内容