You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 23.10重启后无法访问互联网但可ping通DNS服务器的问题求助

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找到你的网卡名(比如enp0s3wlp2s0),然后运行:

    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

火山引擎 最新活动