ubuntu/centos系统ping 不通域名的解决方案

1. 确认网络基础连通性
bash 复制代码
# 测试能否ping通IP地址(如8.8.8.8)
ping -c 4 8.8.8.8
  • 现象判断
    • 若IP可通但域名不通 → DNS解析问题
    • 若IP和域名均不通 → 网络连接故障(需检查物理链路或防火墙)
2. 检查DNS服务器配置
  • 查看当前DNS配置

    bash 复制代码
    cat /etc/resolv.conf
    • 若文件为空或DNS服务器错误(如127.0.0.53),需手动添加:

      bash 复制代码
      sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
      sudo echo "nameserver 114.114.114.114" >> /etc/resolv.conf
    • 注意:重启后可能恢复默认,需永久配置(见步骤3)。

3. 永久配置DNS(Netplan/NetworkManager)
  • Ubuntu 18.04+ 使用Netplan

    bash 复制代码
    sudo nano /etc/netplan/*.yaml  # 如01-network-manager-all.yaml

    添加DNS配置示例:

    yaml 复制代码
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: yes
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]

    应用配置:

    bash 复制代码
    sudo netplan apply
4. 验证nsswitch.conf配置
bash 复制代码
cat /etc/nsswitch.conf | grep hosts
  • 正确配置应为
    hosts: files dns [myhostname]
    若缺少dns,需编辑文件手动添加。
5. 检查关键库文件缺失
bash 复制代码
# 检查是否存在libnss_dns.so.2
ls /lib64/libnss_dns.so.2
  • 若缺失 ,手动创建软链接(假设库文件在/usr/lib/x86_64-linux-gnu/):

    bash 复制代码
    sudo ln -s /usr/lib/x86_64-linux-gnu/libnss_dns.so.2 /lib64/libnss_dns.so.2
6. 排查网络管理服务冲突
bash 复制代码
# 重启网络服务
sudo systemctl restart systemd-networkd
# 或停止NetworkManager(若存在冲突)
sudo systemctl stop NetworkManager
7. 防火墙及安全组检查
  • 本地防火墙

    bash 复制代码
    sudo ufw status  # 查看状态
    sudo ufw allow 53  # 开放DNS端口
  • 云服务器安全组
    确保安全组规则允许 ICMP协议UDP/TCP 53端口 出站。


8. 清理DNS缓存
bash 复制代码
sudo systemd-resolve --flush-caches  
# 或重启systemd-resolved服务
sudo systemctl restart systemd-resolved

9. 扩展测试
  • 手动解析测试

    bash 复制代码
    nslookup www.baidu.com 8.8.8.8
  • 抓包分析

    bash 复制代码
    sudo tcpdump -i eth0 port 53

常见问题汇总

现象 可能原因 解决方案
/etc/resolv.conf 重启后重置 DHCP覆盖或NetworkManager干扰 修改Netplan配置 或设置PEERDNS=no
仅部分域名解析失败 DNS污染或特定域名劫持 更换DNS服务器(如1.1.1.1
解析延迟高 DNS服务器性能差 更换响应更快的公共DNS
相关推荐
虾..7 分钟前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙24 分钟前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
꧁坚持很酷꧂1 小时前
解决虚拟机Ubuntu22.04连接了串口设备但终端没有显示
ubuntu
hkhkhkhkh1232 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen3 小时前
Linux字符串处理
linux·string
张童瑶3 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功1233 小时前
什么是SELinux
linux
石小千4 小时前
Linux安装OpenProject
linux·运维
柏木乃一4 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30904 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu