Networking

發送電子郵件時 ICMP“埠不可達”

  • February 17, 2021

幾個月以來,我在發送電子郵件時遇到了零星的問題。

根據源 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 對我來說失敗的原因。最終幫助解決它的是嗅探/分析從我的整個網路到提供商主機的流量。

引用自:https://serverfault.com/questions/1052718