題 進入被動模式後,FTP斷開連接b / c數據包丟失


出於某種原因,無論我嘗試多少次,在客戶端發送PASV命令(服務器正確接收)後,服務器的回复(227進入被動模式)都不會回到客戶端。我用Wireshark分析了客戶端和服務器的流量,直到找出這麼多。特別奇怪的是,服務器發送的最後一個數據包與目前已成功發送的每個其他數據包具有完全相同的TCP設置。這一切都發往同一個客戶端,在同一個端口,但由於某種原因,這227個響應永遠不會通過。我完全不知道為什麼。

以下是客戶端和服務器交互的屏幕截圖:

客戶端捕獲 Client Capture

正如你所看到的,它永遠不會收到它的PASV命令的ACK。它再次嘗試,然後放棄。

服務器捕獲 Server Capture

如您所見,它接收PASV命令並發送響應,但它永遠不會通過客戶端。它稍後獲得重傳並再次發送響應3次,但它再次無法通過。然後斷開連接。

我無法想像所有其他TCP數據包是否可能從服務器到客戶端沒有問題,但這個特定的TCP數據包不會。對於進出服務器的所有數據包,TCP標頭是相同的,因此根據我的理解,所有路由器,防火牆,ISP等都應該平等對待它們,除非它們是數據包嗅探。


3
2018-06-10 22:53


起源




答案:


我剛剛遇到同樣的問題,並在谷歌搜索解決方案時發現了這個問題。我的情況我的問題是由防火牆(Sonic Wall)檢測到服務器的答案是可能的FTP反彈攻擊並丟棄了連接。解決方案是更改FTP服務器中的被動設置,並輸入內部IP地址作為對PASV的響應。然後,防火牆將其檢測為合法答案,並將答案轉換為外部地址,然後再將其傳輸到客戶端。設置這種方式感覺非常錯誤,但它與此防火牆一起使用。


3
2017-10-10 19:27



這種聲音牆的行為引起了我的興趣。 Azure ARM基礎設施上也會出現這種行為嗎?我面臨類似的問題,但在帶有FTP服務器的Azure ARM VM上運行。 - Paul0515


顯而易見的解決方案:我一直在搞亂我的路由器上的任何東西,我認為可能會破壞傳出的數據包。我禁用了一種名為“NAT ALG”的東西(應用級網關並且FTP客戶端和服務器再次以被動模式開始正常通信。顯然,這種協議監聽會給很多人帶來問題。

對於未來的讀者,我的調製解調器/路由器是摩托羅拉SBG6580 SurfBoard。我的ISP EastLink的標準問題。它預先配置了許多這樣的“功能”,有些似乎是在以太網II幀級別破壞傳出的數據包。


1
2018-06-11 03:36





我認為這是FileZilla版本<3.6.0.2的已知問題,您是否有機會使用舊版本?


0
2018-06-10 22:58



不敢。客戶端是最新的穩定版本,服務器也是如此。 - Alain


我在Windows 7服務器上遇到了完全相同的問題。客戶端無法接收“227進入被動模式”包。問題必須在服務器端。我關閉了所有防火牆,但它仍然得到了相同的結果。最後我找到了原因。在網絡和共享中心,您無法將網絡位置設置為“公共網絡”。因為Windows將公共網絡視為不受信任。任何連接計算機的嘗試都將被視為風險並被阻止。只需將其設置為“工作網絡”,然後服務器工作正常。


0
2018-03-31 10:27