几个月以来,我在发送电子邮件时遇到了零星的问题。
根据源 IP,使用 tcpdump 我终于发现我从似乎是我的电子邮件提供商那里收到了“端口无法访问”的消息。但是我的电子邮件提供商说他们在他们的网络中找不到问题,并说它一定在我的网络中。为了排除防火墙的问题,我设置了端口镜像,并在连接到作为网桥运行的电缆调制解调器的端口上捕获了数据包。
我已经做了很多故障排除。我懂了:
- 当我通过 Wi-Fi 从 Android 手机或有线 PC 上的 Thunderbird 发送时,都会发生错误。
- 当我向电子邮件提供商发送到 SMTP 端口 465 或 587 时发生错误
- 它并不总是发生;经过一番尝试,邮件终于被发送了;或者在第一次尝试时发送
- 我刚刚看到,在接收 DNS 响应时,我的 DNS 解析器也将“端口不可达”发送到转发 DNS 服务器(1.1.1.1、1.0.0.1)。我想这与电子邮件问题无关,但谁知道呢?
这是我遇到的 ICMP 错误的一个示例。
Internet Control Message Protocol
Type: 3 (Destination unreachable)
Code: 3 (Port unreachable)
Checksum: 0x8c59 [correct]
[Checksum Status: Good]
Unused: 00000000
Internet Protocol Version 4, Src: <my-ip>, Dst: <smtp-server-ip>
Transmission Control Protocol, Src Port: 48624, Dst Port: 587, Seq: 3998125229
Source Port: 48624
Destination Port: 587
Sequence number: 3998125229
[Stream index: 0]
Acknowledgment number: 0
Acknowledgment number (raw): 0
1010 .... = Header Length: 40 bytes (10)
Flags: 0x002 (SYN)
Window size value: 29200
[Calculated window size: 29200]
Checksum: 0x3680 [unverified]
[Checksum Status: Unverified]
Urgent pointer: 0
Options: (20 bytes), Maximum segment size, SACK permitted, Timestamps, No-Operation (NOP), Window scale
[Timestamps]
这里会出现什么问题,以及网络的哪个部分?问题既不在我的网络也不在电子邮件提供商的网络中是否合理?
如果在特定时间范围内从该地址多次尝试登录失败,我的电子邮件提供商将阻止来自特定 IP 的访问,以避免滥用。
原来我的一台机器由于 TLS 错误导致登录失败,所以我的 IP 地址被暂时阻止。关闭这些登录解决了这些问题。
解决那个问题真的很困难。提供商没有详细说明 SMTP 对我来说失败的原因。最终帮助解决它的是嗅探/分析从我的整个网络到提供商主机的流量。