调整邮件服务器与Traefik配置后子域名出现DNS_PROBE_POSSIBLE问题
排查Traefik配置调整后子域名DNS无法解析问题
核心现象
调整邮件服务器与Traefik配置后,部分服务子域名出现DNS_PROBE_POSSIBLE或NXDOMAIN错误,所有客户端(跨设备、ISP、浏览器)均受影响;Traefik仪表盘已识别对应服务和路由,但无任何请求日志(请求未到达Traefik)。
已尝试的操作:
- 重启所有容器并清理Docker网络
- 重启服务器
- 更换客户端DNS、设备及ISP
- 手动添加子域名DNS A记录
排查方向
1. 检查邮件服务器对DNS端口/配置的干扰
- 执行
netstat -tulpn | grep :53,确认邮件服务器(如Postfix、Exim)是否占用了DNS默认的53端口,若占用会导致服务器本地DNS解析异常。 - 查看服务器本地
/etc/resolv.conf或DNSmasq配置文件,确认是否被邮件服务修改,导致自身无法正确解析子域名。
2. 验证DNS记录的实际生效链路
- 在服务器本地执行
dig <问题子域名> @8.8.8.8和dig <问题子域名> @localhost,对比返回结果:- 若公共DNS返回正确A记录但本地DNS返回NXDOMAIN,说明服务器本地DNS服务异常;
- 若公共DNS也返回NXDOMAIN,执行
dig +trace <问题子域名>跟踪解析链路,排查域名服务商的记录同步延迟或缓存问题。
3. 检查Traefik的端口绑定与防火墙规则
- 执行
docker ps | grep traefik,确认Traefik端口映射为0.0.0.0:80->80/tcp和0.0.0.0:443->443/tcp,若绑定特定IP而非全局IP,会导致外部请求无法到达。 - 执行
iptables -L -n | grep -E '80|443',检查服务器防火墙(ufw/iptables)是否封禁了80/443端口,且Docker的iptables规则未被邮件服务器配置篡改。
4. 排查Traefik配置的冲突与错误
- 检查Traefik静态配置文件(如
traefik.yml),确认entryPoints、providers等核心配置未被误修改,导致路由规则无法生效。 - 核对问题子域名的动态路由配置(Docker标签/File Provider文件),排查是否存在域名拼写错误、中间件冲突,或与邮件服务器的域名规则重叠(如相同子域名被邮件服务占用)。
5. 验证服务器自身的解析与访问能力
- 在服务器本地执行
curl -v http://<问题子域名>,若返回DNS错误,优先排查本地DNS配置;若能正常访问,说明问题出在外部DNS到服务器的链路。
内容的提问来源于stack exchange,提问作者LarsJaeger
相关产品推荐
相关产品推荐

