如果 DNS 解析域名/地址失败,就会得到 DNS_PROBE_FINISHED_NXDOMAIN
提示,无法打开目标网页。
DNS 是域名系统,它是连接域名(URL)和服务器 IP 地址是桥梁。probe 是调查/探查的意思,NXDOMAIN 则表示 non-existent domain,域名不存在。因为,提示的意思是:DNS 探查域名完成,当前域名不存在。
但实际上,域名是存在的。所以,哪里出问题了?
以下是从网络中找到的 8 种解决该问题的办法:
- 释放并更新 IP 地址
- 重启 DNS 客户端服务
- 改变 DNS 服务器
- 重置 Chrome Flags
- 暂时关闭 VPN 和杀毒软件
- 检查本地 hosts 文件
- 检查域名 DNS
- 重启电脑
*我的电脑系统是 Ubuntu20.04.1,以下所有操作都在此系统进行*。
释放并更新 IP 地址
sudo dhclient -r # 释放 sudo dhclient # 更新
但是执行 sudo dhclient
报错:=RTNETLINK answers: Operation not
possible due to
RF-kill=,通过这里得到一个操作
rfkill unblock all=。再执行 =sudo dhclient
不报错了,输出:=RTNETLINK
answers: File exists=。文件已存在的话,重新执行即可。
我又执行了一遍代码片段的内容:
$ sudo dhclient -r Killed old client process $ sudo dhclient
OK,更新 IP 没有输出,说明正常执行。
重启 DNS 客户端服务
sudo apt install bind9 sudo apt install dnsutils sudo vim /etc/bind/named.conf.options # add nameservers:8.8.8.8;8.8.4.4;1.1.1.1 to forwarders sudo systemctl restart bind9.service # open bind9 service service bind9 status # check bind9 status
然后,如果我执行 sudo service bind9 restart
就说明 DNS
客户端已被重启。
改变 DNS 服务器
在 Ubuntu 有两种修改方式,一种通过 GUI(图形化界面),一种通过 Ubuntu20.04 预装的 netplan 软件。我使用后者,因为它在命令行操作,很方便。
$ ls -a /etc/netplan . .. 01-network-manager-all.yaml
查看 01-network-manager-all.yaml 文件,发现还没有进行任何配置:
network: version: 2 renderer: NetworkManager
它的意思是:让 NetworkManager 接管所有网络设置(默认情况下,一旦检测到运营商,任何以太网设备都将提供 DHCP),NetworkManager 就是 Ubuntu 网络管理的默认 GUI。
根据参考写一个新的能更新 nameserver 的 01-network-manager-all.yaml 文件:
network: version: 2 renderer: networkd ethernets: enp2s0: dhcp4: true nameservers: addresses: - 8.8.8.8 - 8.8.4.4
使用 networkd 作为渲染器不会让设备使用 DHCP 自动出现; 每个接口都需要在
/etc/netplan
中的文件中指定,以便编写其配置并在 networkd 中使用。
重置 Chrome flags
在 Google Chrome 浏览器中的地址栏输入 chrome://flags/
点击右上方的
Reset all
即可。这样做是因为 Chrome
会时不时释出一些实验性功能,这些实验性功能可能回使原本正常的 DNS
解析受到影响。
暂时关闭 VPN 或杀毒软件
这是因为 VPN 会改变电脑的网络环境,由此会产生诸多问题。杀毒软件会对网络进行严格监控,它会控制进出口流量,甄别可能会对主机/网络产生消极影响的流量。
检查本地 hosts 文件
vim /etc/hosts
如果你要修改,就要在 root 下执行:=sudo vim /etc/hosts=。
重启电脑
这是最后的万全之策。很多问题可以通过重启解决,这一个也可能不会例外。
ref:
- https://support.google.com/chrome/thread/6144098/dns-probe-finished-nxdomain?hl=en&msgid=13374613
- https://kinsta.com/knowledgebase/dns_probe_finished_nxdomain/
- https://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/
- https://ubuntu.com/server/docs/service-domain-name-service-dns
- https://www.cyberciti.biz/faq/restart-named-service-ubuntu-debuan-linux/
- https://netplan.io/