You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用socat与dig在本地模拟DNS请求遇连接超时问题排查

socat转发DNS请求超时的问题分析

你的命令核心问题是协议不匹配:

  • 你用socat监听的是TCP端口15353,但把请求转发到了谷歌DNS的UDP端口53
  • 而dig +tcp发起的是TCP类型的DNS请求,谷歌DNS返回的UDP响应无法通过TCP连接回传给dig,导致dig一直收不到响应,最终超时

修正方案

方案1:转发TCP DNS请求(对应dig的+tcp参数)

把socat的转发目标改成TCP协议的谷歌DNS端口(DNS的TCP默认端口也是53):

socat -v -v TCP-LISTEN:15353,reuseaddr,fork TCP:8.8.8.8:53

此时再执行你原来的dig命令,就能正常收到响应。

方案2:转发UDP DNS请求(常规DNS请求)

如果不需要测试TCP DNS,可改为监听UDP端口,对应普通UDP DNS请求:

# 启动socat转发UDP流量
socat -v -v UDP-LISTEN:15353,reuseaddr,fork UDP:8.8.8.8:53
# 用dig发起UDP请求(去掉+tcp参数)
dig example.com @localhost -p 15353

内容的提问来源于stack exchange,提问作者Jia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:45:33