為什麼我會收到來自我造訪的網站的未經請求的傳入連線?

為什麼我會收到來自我造訪的網站的未經請求的傳入連線?

這僅在瀏覽時發生。我有一台甚至不阻止傳入流量的路由器,因此我的電腦的防火牆必須完成所有工作。在下面的日誌中,我使用的是 Firefox,但任何瀏覽器都會發生這種情況。在我的 Firefox 中,HTTP2、Web Worker、Service Worker、WebRTC 和許多其他東西都被禁用/阻止,所以對我來說,伺服器如何設法請求未經請求的連接到我的電腦確實是一個謎。瀏覽某些網站時會出現這種情況,但並非全部。

Date    Time  Direction                  Process path                  Protocol    Source IP     Src Port     Dest. IP    Dest.Port  Action                                 Window title
17/04 16:23:59 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50755 | 204.79.197.200  | 443   | Allowed | Startpage.com - The world's most private search engine - Mozilla Firefox
17/04 16:23:59 | In  | -                                               | TCP  | 204.79.197.200  | 443   | 10.0.0.3        | 50730 | Blocked | 
17/04 16:23:59 | In  | -                                               | TCP  | 204.79.197.200  | 443   | 10.0.0.3        | 50735 | Blocked | 
17/04 16:23:59 | In  | -                                               | TCP  | 204.79.197.200  | 443   | 10.0.0.3        | 50735 | Blocked | 
17/04 16:25:25 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50766 | 37.252.238.25   | 443   | Allowed | unsolicited incoming connections at DuckDuckGo - Mozilla Firefox
17/04 16:25:25 | In  | -                                               | TCP  | 37.252.238.25   | 443   | 10.0.0.3        | 50766 | Blocked | 
17/04 16:29:50 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50785 | 201.48.71.43    | 443   | Allowed | Bing - Mozilla Firefox
17/04 16:29:51 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50786 | 201.48.71.43    | 443   | Allowed | Bing - Mozilla Firefox
17/04 16:29:51 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50787 | 201.48.71.43    | 443   | Allowed | Bing - Mozilla Firefox
17/04 16:29:51 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50788 | 201.48.71.43    | 443   | Allowed | Bing - Mozilla Firefox
17/04 16:29:54 | In  | -                                               | TCP  | 201.48.71.43    | 443   | 10.0.0.3        | 50788 | Blocked | 
17/04 17:03:12 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50986 | 151.101.1.69    | 443   | Allowed | Super User - Mozilla Firefox
17/04 17:03:12 | Out | C:\program files\mozilla firefox\firefox.exe    | TCP  | 10.0.0.3        | 50987 | 151.101.1.69    | 443   | Allowed | Super User - Mozilla Firefox
17/04 17:03:18 | In  | -                                               | TCP  | 151.101.1.69    | 443   | 10.0.0.3        | 50986 | Blocked | 
17/04 17:03:18 | In  | -                                               | TCP  | 151.101.1.69    | 443   | 10.0.0.3        | 50987 | Blocked | 

還有許多其他範例,但它們都遵循相同的模式:我訪問該站點,該站點創建到特定 IP 的連接,然後來自同一 IP 的一個或多個未經請求的傳入連接嘗試發生。

任何人都知道這是怎麼回事、為什麼以及如何發生?

答案1

不,我認為您計算機的防火牆在欺騙您。

從本地和遠端連接埠的選擇來看,它可能會看到屬於現有出站連接的完全正常的回應資料包,但由於某種原因無法將它們與該連接關聯起來。

要知道連線是傳入還是傳出,防火牆必須是有狀態的 - 它會注意每個 TCP 封包並記住對應的位址和連接埠對。例如,它知道所有具有本地位址(10.0.0.3、50766)和遠端位址(37.252.238.25、443)的封包都屬於您的瀏覽器建立的出站連線。

當回覆封包進入時,防火牆會查看其連接表,發現位址對 (37.252.238.25, 443) 到 (10.0.0.3, 50766) 已經已知 – 該封包不是新連接,它只是對現有(出站)連接的響應並且需要被允許。

但是,如果狀態資訊因某種原因而失去同步——例如主機本身認為連接仍然打開,但防火牆已經忘記了——那麼它將無法輕鬆確定傳入資料包的類型。在這種情況下,防火牆不再知道傳入資料包屬於最初出站的連接,因此最終將其與單獨的「入站」條目相關聯。

例如,一個可能的原因是您的計算機剛剛傳送「連線關閉」FIN 封包,但遠端伺服器有還沒收到它(因為資料傳輸不是即時的),並且仍然很樂意向您發送資料包。如果您的防火牆在看到傳出 FIN 後立即忘記該連接,那麼它當然無法將這些傳入資料包識別為仍然屬於同一連接。 (半封閉連線在 TCP 中是有效的,但我不會讓它通過防火牆而沒有意識到這一點。)

當防火牆的狀態限制非常小時,有時也會發生這種情況,例如我見過家庭路由器無法同時追蹤超過 50 或 100 個狀態(不僅包括 TCP 連接,還包括 UDP 流 - 例如每個 DNS通過UDP 的請求會建立一個新狀態,以便允許回應通過)。類似地,某些防火牆的狀態到期時間非常短 - 一旦 TCP 連接空閒一兩分鐘,它們可能會忘記 TCP 連接,即使連接保持空閒時間比這長一段時間是完全正常的。

(有時防火牆過於急切地拒絕兩台主機都認為正常的事情。例如,當瀏覽器開始嘗試 TCP Fast Open 時,我的 ISP 提供的家庭路由器當時被阻止全部TFO資料包基於其「SYN資料包不能包含資料」的信念,並在其日誌中每次都大喊「入侵警報」。我相信這是 QUIC 被開發為獨立於 TCP 的一個重要原因。

相關內容