Ubuntu 23.10重启后无法访问互联网但可ping通DNS服务器的问题求助
我明白这种明明能通IP却解析不了域名的问题有多闹心——毕竟Ubuntu本该是开箱即用的,折腾这么久肯定头大。咱们一步步来排查,因为你能ping通8.8.8.8,说明网络链路完全没问题,问题百分百出在域名解析环节。
给你整理了几个针对性的排查和解决步骤,按顺序来试:
先检查DNS核心配置文件和服务状态
首先看系统当前的DNS配置:运行cat /etc/resolv.conf,看看里面有没有nameserver 8.8.8.8这类有效配置。
注意,Ubuntu 23.10默认用systemd-resolved管理DNS,如果/etc/resolv.conf是软链接指向/run/systemd/resolve/stub-resolv.conf,那得确认这个服务是否正常运行:
运行systemctl status systemd-resolved,如果显示不是active (running),就启动它:sudo systemctl start systemd-resolved sudo systemctl enable systemd-resolved启动后再ping域名试试。
强制锁定手动DNS服务器
有时候图形界面设置的DNS会被系统服务忽略,咱们直接修改systemd-resolved的配置文件:
编辑/etc/systemd/resolved.conf,把注释掉的DNS=行打开,改成:DNS=8.8.8.8 8.8.4.4然后重启服务:
sudo systemctl restart systemd-resolved
另外可以试试把/etc/resolv.conf改成直接指向真实的DNS配置(绕过stub解析):sudo cp /etc/resolv.conf /etc/resolv.conf.bak sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf检查NetworkManager的DNS设置
图形界面的网络管理器可能会覆盖DNS配置,你可以用命令确认当前网卡的DNS:
先通过ip addr找到你的网卡名(比如enp0s3或wlp2s0),然后运行:nmcli device show <你的网卡名>找
IP4.DNS这一行,看看是不是你设置的8.8.8.8。如果不对,右键网络图标→编辑连接→选中你的网络→IPv4设置→方法改成「自动(DHCP)仅地址」,然后在DNS服务器里填8.8.8.8,8.8.4.4,保存后重启网络连接。清空DNS缓存
有时候缓存损坏会导致解析失败,直接清空:resolvectl flush-caches # 或者重启服务更彻底 sudo systemctl restart systemd-resolved排查残留配置干扰
你之前装过OpenVPN,虽然卸载了,可能还有残留配置在搞鬼:sudo cp -r /etc/openvpn /etc/openvpn.bak sudo rm -rf /etc/openvpn关于UFW,即使显示inactive,也可以重置所有规则试试:
sudo ufw reset sudo systemctl reboot最后验证DNS解析能力
用dig命令直接指定DNS服务器解析域名,确认DNS本身没问题:dig @8.8.8.8 www.google.com如果输出里能看到
ANSWER SECTION和对应的IP,说明DNS服务器正常,问题还是在系统的DNS配置上;如果dig也失败,那可能是网络运营商限制了公共DNS,但你能ping通8.8.8.8,这种概率极低。
每试完一步就ping www.google.com看看有没有恢复,如果还是不行,告诉我具体哪一步的输出有异常,咱们再深挖。
备注:内容来源于stack exchange,提问作者Kristian




