查看: 656|回复: 0

CentOS 8 下 ping 域名延迟大解决办法

[复制链接]

73

主题

0

回帖

858993万

积分

管理员

积分
8589934666
发表于 2026-6-26 16:24:20 | 显示全部楼层 |阅读模式

CentOS 8 下 ping 域名慢,‌90% 的情况是 DNS 解析延迟或反向解析超时‌,而非网络链路本身问题。请按以下顺序快速排查并修复:

1. 快速定位根源

先区分是 DNS 问题还是网络问题:

  • ‌测试直连 IP‌:ping <目标域名对应的 IP>。若速度正常,确认为 ‌DNS 解析问题‌ 。
  • ‌测试解析耗时‌:执行 time dig <域名> 或 time nslookup <域名>,若 Query time 超过 100ms 或出现超时,说明 DNS 服务器响应慢 。
  • ‌检查反向解析‌:ping 默认会尝试将 IP 反解析为域名,若反向解析失败会等待超时。使用 ping -n <域名> 测试,若速度瞬间变快,说明是‌反向解析阻塞‌导致 。‌‌
2. 核心解决方案(推荐按序执行)A. 优化 /etc/resolv.conf 配置(立即生效)

编辑 /etc/resolv.conf,添加高性能 DNS 并调整超时参数:

bash

sudo vi /etc/resolv.conf

在文件顶部添加以下内容(注意顺序):

options single-request-reopen timeout:1 attempts:1 rotate
nameserver 223.5.5.5
nameserver 114.114.114.114
nameserver 1.1.1.1

  • ‌single-request-reopen‌:解决 CentOS 因同时查询 IPv4/IPv6 导致 socket 阻塞等待的问题 。
  • ‌timeout:1 attempts:1‌:将默认 5 秒超时改为 1 秒,避免无响应时长时间等待 。
  • ‌rotate‌:轮询多个 DNS 服务器,避免单点故障 。‌‌
B. 永久生效配置(防止重启还原)

CentOS 8 使用 NetworkManager 管理网络,直接修改 /etc/resolv.conf 重启后可能失效。需修改网卡配置:


  • 找到网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-<网卡名>(如 eth0)。

  • 添加或修改 DNS 设置:
    DNS1=223.5.5.5

    DNS2=114.114.114.114
    PEERDNS=no
  • 重启网络服务:
    sudo systemctl restart NetworkManager

    *注:若使用 netplan 或其他网络管理器,请对应调整其配置文件 。

C. 关闭不必要的反向解析(可选)

若业务无需显示域名主机名,可禁止 ping 进行反向解析:

  • 临时方案:始终使用 ping -n <域名>。
  • 系统级优化:检查 /etc/nsswitch.conf,确保 hosts: 行中 dns 前无阻塞项,或配置本地缓存服务(如 nscd 或 systemd-resolved)加速重复查询 。‌‌
3. 其他潜在干扰排查

  • ‌IPv6 干扰‌:若网络不支持 IPv6,可在 /etc/sysctl.conf 中添加 net.ipv6.conf.all.disable_ipv6=1 并执行 sysctl -p,避免解析时等待 AAAA 记录超时 。
  • ‌防火墙/SELinux‌:确保 UDP 53 端口未被拦截,临时关闭防火墙测试:sudo systemctl stop firewalld 。
  • ‌本地缓存‌:安装并启动 nscd 服务可缓存 DNS 结果,减少重复查询延迟:bash

    sudo dnf install nscd -ysudo
    systemctl--now nscd


完成上述配置后,再次执行 ping <域名>,首包延迟应显著降低。若仍慢,请使用 traceroute <域名> 检查中间路由节点是否存在拥塞 。‌‌










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鄂ICP备2026025969号-1

在本版发帖
关注公众号
返回顶部