【问题】使用Adguard后,docker有报错[error] dnsproxy,怎么解决?

【问题】使用Adguard后,docker有报错[error] dnsproxy,怎么解决?

日志报错范例:

2026/08/06 09:22:46.607661 [error] dnsproxy: response received upstream_type=local addr=114.114.114.114:53 proto=udp status="exchanging with 114.114.114.114:53 over udp: read udp 192.168.100.111:39920->114.114.114.114:53: i/o timeout"

2026/08/06 09:22:46.607666 [error] dnsproxy: response received upstream_type=local addr=114.114.114.114:53 proto=udp status="exchanging with 114.114.114.114:53 over udp: read udp 192.168.100.111:48551->114.114.114.114:53: i/o timeout"

毒打AI过程总结:

经过我和AI的多轮博弈,发现报错是因为:

当dnsproxy(DNS代理服务)拿着私有IP去问公共DNS时,公共DNS不知道该回复什么,加上这次用的是TCP协议(53端口),很多公共DNS对来自局域网的无效TCP查询会直接丢弃或拒绝响应,于是触发了i/o timeout(输入输出超时)

AI给我胡诌诌了那么多,简直了,就说我的网络有问题造成的超时

解决办法:

通过修改配置文件设置“私有网络”范围

配置文件路径:实际映射的文件夹/conf/AdGuardHome.yaml

更改内容:

dns:
  # ... 其他内容原封不动 ...
  private_networks:
    - 192.168.0.0/16
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 127.0.0.0/8
    - ::1/128
  # ... 其他内容原封不动 ...

注意:更改之前记得先停止,更改完成后重启容器即可

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享