用 Python 写了个简单的 app ,和几个网站交互,都出现过域名无法解析的异常。
下面是通过 imap 连接腾讯邮箱(imap.exmail.qq.com)时的报错,其实连接其它网站的时候都出现过这类提示,高峰的时候大概 20 分钟异常一次,低的时候一天有 3 ,4 次。
2023-06-07 16:45:17,483 [ERROR][lib_email.py->fetch_email][115] Traceback (most recent call last):
File "/opt/app/lib_email.py", line 32, in fetch_email
imapClient = IMAPClient(self.imap_server, ssl= True)
File "/usr/local/lib/python3.9/site-packages/imapclient/imapclient.py", line 285, in __init__
self._imap = self._create_IMAP4()
File "/usr/local/lib/python3.9/site-packages/imapclient/imapclient.py", line 322, in _create_IMAP4
return tls.IMAP4_TLS(
File "/usr/local/lib/python3.9/site-packages/imapclient/tls.py", line 44, in __init__
imaplib.IMAP4.__init__(self, host, port)
File "/usr/local/lib/python3.9/imaplib.py", line 202, in __init__
self.open(host, port, timeout)
File "/usr/local/lib/python3.9/site-packages/imapclient/tls.py", line 49, in open
sock = socket.create_connection(
File "/usr/local/lib/python3.9/socket.py", line 823, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/lib/python3.9/socket.py", line 954, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
我在 Docker 镜像里直接修改过 /etc/resolv.conf 使用 8.8.8.8 ,223.5.5.5 也修改过宿主机的 daemon.json 使用上述 DNS, 但是都没啥效果。
好像是从 4 月份开始的,真的是诡异,不知道大家有没有什么思路去追查或者解决?谢谢
1
wheat0r 2023-06-07 17:24:34 +08:00
不熟悉,听说 alpine 有祖传 dns 问题
|
2
whoosy 2023-06-07 17:26:46 +08:00
确定下相关代码在宿主机上跑有没有问题
|
4
f1ynnv2 OP @whoosy 直觉上感觉应该没问题,不过我来验证一下。我在镜像里和宿主机上一直跑个 ping 写日志,看看下次镜像里 app 出错时,两个 ping 日志是啥情况。
|
5
Judoon 2023-06-07 17:34:13 +08:00
换本地 dns 缓存服务器试试,可能 udp 丢包问题
|
6
jdOY 2023-06-07 20:20:37 +08:00
抓包看看一切都清楚
|
7
yuikns 2023-06-08 04:37:08 +08:00
8.8.8.8 不太牢靠吧。如果国内比较在乎这个问题的话,试试企业的公共 dns 。比如腾讯的 119.29.29.29
|
8
photon006 2023-06-08 09:13:06 +08:00
我遇到过,干脆内网环境用 adguardhome 自建 dns 服务,启动 docker 容器指向它,现在稳了
docker run -d --name myName --restart=always --init -e TZ=Asia/Shanghai --dns="10.13.1.50" --network=host image |
10
stcQ2G13k9yxep40 2023-06-08 11:17:52 +08:00
也许是域名本身的问题,反诈中心 96110 最近拦截了很多域名
|
11
f1ynnv2 OP 试了下,在 docker compose 文件里通过 extra_hosts:把用到的几个域名写死,暂时没再遇到这问题了。
不理解这基本的 DNS 解析为啥还老出错,114.114.114.114, 223.5.5.5, 8.8.8.8 都轮番试过。 |
12
guanzhangzhang 2023-06-17 11:29:32 +08:00
你 dns 上有换 doh 之类的非 udp53 试试
|