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
相关推荐
桑榆4167 小时前
WebRTC 本地视频文件推流 Demo 搭建指南 (Ubuntu 24.04)
linux·ubuntu·webrtc
meilindehuzi_a7 小时前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器
z20348315208 小时前
Ubuntu双系统安装指南:从 UEFI 原理到 Ubuntu 分区方案的全面解析
linux·运维·ubuntu
wangjing_05228 小时前
通过CentOS 7虚拟机的Docker服务部署Node-RED及气象数据显示界面搭建完整教程
linux·docker·centos
万叶学编程8 小时前
服务器网站运维指令全解| Linux 实操完整教程
linux·运维·服务器
风曦Kisaki9 小时前
# Kubernetes(K8s)笔记Day13 :工作负载资源概述与 Job (CronJob)控制器
linux·笔记·云原生·容器·kubernetes
vortex59 小时前
ss 命令指南:网络排查神器
linux·运维·网络·终端
Shadow(⊙o⊙)9 小时前
Linux网络部分——基于UDP的四大接口,实例应用,常考汇总,完整服务端、客户端设计流程+代码
linux·网络·udp
深念Y9 小时前
老Flyme 官方 root 开启 ADB TCP 方案
linux·数据库·网络协议·tcp/ip·adb·智能手机·emmc
小此方10 小时前
Re:Linux系统篇(五十二)线程篇 · 五:直击 Linux 内核底层:TCB 与 LWP 一体两面全解析(附自定义线程封装)
linux·运维·驱动开发