Dorimu

Dorimu

Debian 服务器 DNS 解析故障排查实录

前言#

上次 ubuntu 的 dns 出错后,debain 服务器的 dns 也炸了

怎么炸 dns 跟我这么有缘?

问题背景#

Debian 服务器出现诡异现象:

  • 使用公共 DNS(如 8.8.8.8223.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 entries

UDP 请求未建立连接,响应包在传输过程中被丢弃

真逆天

结论#

暂且还不知道是什么问题,可能是中间网络设备拦截的?
docker 之类的也排除过了
有没有朋友知道的留下解决方案?

解决方案#

强制使用 TCP 协议解析#

# 修改 /etc/resolv.conf
echo "options use-vc" | sudo tee -a /etc/resolv.conf

自建 DNS#

留个坑

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。