285 字
1 分钟
Debian 服务器 DNS 解析故障排查实录
Debian 服务器 DNS 解析故障排查实录
前言
上次 Ubuntu 的 DNS 出错后,Debian 服务器的 DNS 也炸了。怎么炸 DNS 跟我这么有缘?
问题背景
Debian 服务器出现诡异现象:
- 使用公共 DNS(如
8.8.8.8或223.5.5.5)无法解析域名 - 使用局域网自建 DNS(如
192.168.0.254)解析正常
排查过程
1. DNS 连通性测试
nc -zuv 223.5.5.5 53 # 输出: Connection succeeded!公共 DNS 的 53 端口可达。
疑惑 ing
2. DNS 配置检查
cat /etc/resolv.conf# 输出:# nameserver 223.5.5.5# nameserver 8.8.8.8挺正常的 qwq
3. 防火墙规则
sudo iptables -L -n -v | grep 53没啥问题~
4. dig查询
# UDP 查询(失败)dig @223.5.5.5 aliyun.com +short# 输出: ;; communications error: timed out
# TCP 查询(成功!)dig +tcp @223.5.5.5 aliyun.com +short# 输出: 106.11.253.83 140.205.60.46 ...UDP DNS 查询被拦截,TCP DNS 正常。
5. 网络抓包取证
sudo tcpdump -i any port 53 -w dns.pcap抓包结果:
- 只有 外发 DNS 请求(
A? aliyun.com) - 无 响应数据包 返回
6. 连接追踪验证
sudo conntrack -L -p udp --dport 53# 输出: 0 flow entriesUDP 请求未建立连接,响应包在传输过程中被丢弃。
真逆天
结论
暂且还不知道是什么问题,可能是中间网络设备拦截的?docker 之类的也排除过了,有没有朋友知道的留下解决方案?
解决方案
强制使用 TCP 协议解析
# 修改 /etc/resolv.confecho "options use-vc" | sudo tee -a /etc/resolv.conf自建DNS
留个坑
Debian 服务器 DNS 解析故障排查实录
https://blog.dorimu.cn/posts/debian-dns-error/ 部分信息可能已经过时









