最近发现手上一台搬瓦工 MegaBoxPro 延迟莫名偏高,折腾了一圈发现是 DNS 的问题。记录一下排查过程和解决方案,不一定适用所有人,仅供参考~
一、现象与判断标准
问题机器默认 DNS 走 172.31.255.2(搬瓦工自带)和 8.8.8.8,通过 ping 谷歌域名可以判断是否异常:
ping -c 5 google.com
延迟参考:
1ms 左右 → 正常
40~50ms 或更高 → DNS 路径可能有问题,换 DNS 往往立竿见影
不是所有 MegaBoxPro 都会触发这个问题。我三台机器里只有一台有这个现象,另外两台用 8.8.8.8 和 1.1.1.1 都完全正常。另外一开始以为是
172.31.255.2的问题,但删掉之后问题依然存在,所以问题出在 8.8.8.8 这边。
查看当前 DNS:
cat /etc/resolv.conf
二、原因分析
8.8.8.8、1.1.1.1 这类公共 DNS 都是 Anycast 地址——同一个 IP 会被路由到全球不同的实际节点。不同 VPS 的上游 BGP 路径不同,可能导致某台机器被导向更远、更绕或更拥堵的 DNS 节点,从而造成域名解析耗时异常。换一个解析器后路径更优,延迟就恢复正常了。
三、解决方案 A:从 DHCP 源头修改
把 DNS 写进 dhclient 配置,让 DHCP 分配时直接使用指定的 DNS:
echo "supersede domain-name-servers 1.1.1.1,1.0.0.1;" >> /etc/dhcp/dhclient.conf
然后重新让 DHCP 生效(网卡名按实际替换,一般是 eth0):
dhclient -r eth0
dhclient eth0
cat /etc/resolv.conf
四、解决方案 B:锁定 /etc/resolv.conf
直接写入 DNS 并用 chattr 锁文件,防止 DHCP 或系统重启后覆盖:
# 1. 先解锁(如果之前锁过)
chattr -i /etc/resolv.conf 2>/dev/null || true
# 2. 写入 DNS(Cloudflare 主+备)
printf "nameserver 1.1.1.1\nnameserver 1.0.0.1\n" > /etc/resolv.conf
# 3. 锁定
chattr +i /etc/resolv.conf
# 4. 验证,看到 i 标志就是彻底固定了
cat /etc/resolv.conf
lsattr /etc/resolv.conf
五、效果对比
修改前后 ping 谷歌域名的延迟对比:

如果你的机器也有类似现象,换个 DNS 试试,说不定一行命令就解决了。
评论交流
欢迎留下你的想法