FTP 用戶端(任何)將在 macOS Big Sur 11.4 和 11.5 中以被動模式掛在 MLSD 上

FTP 用戶端(任何)將在 macOS Big Sur 11.4 和 11.5 中以被動模式掛在 MLSD 上

最近,我注意到 macOS Big Sur 11.4 和 11.5 (Mac M1) 出現了一個奇怪的問題,無論我使用哪個 FTP 用戶端,都會出現同樣的問題。 (Cyber​​Duck、FileZilla 或只是普通的舊 MC)。具有相同作業系統的不同網路上的其他用戶向我報告了問題。

問題是 FTP 用戶端將掛起 MLSD 命令並逾時。有時您可以列出幾個目錄,幾秒鐘後它會自行鎖定。

與 TLS 或普通 FTP 的行為相同。 MLSD 後無網路活動。用 Wireshark 檢查過。

12:06:29 Response:      257 "/public_html" is your current location
12:06:29 Trace: CFtpChangeDirOpData::ParseResponse() in state 5
12:06:29 Trace: CFtpControlSocket::ResetOperation(0)
12:06:29 Trace: CControlSocket::ResetOperation(0)
12:06:29 Trace: CFtpChangeDirOpData::Reset(0) in state 5
12:06:29 Trace: CFtpListOpData::SubcommandResult(0) in state 1
12:06:29 Trace: CControlSocket::SendNextCommand()
12:06:29 Trace: CFtpListOpData::Send() in state 2
12:06:29 Trace: CFtpRawTransferOpData::Send() in state 0
12:06:29 Trace: CFtpRawTransferOpData::Send() in state 2
12:06:29 Command:           PASV
12:06:29 Trace: tls_layer_impl::on_read()
12:06:29 Trace: CFtpControlSocket::OnReceive()
12:06:29 Response:      227 Entering Passive Mode (*,*,*,*,133,42)
12:06:29 Trace: CFtpRawTransferOpData::ParseResponse() in state 2
12:06:29 Trace: CControlSocket::SendNextCommand()
12:06:29 Trace: CFtpRawTransferOpData::Send() in state 4
12:06:29 Trace: Binding data connection source IP to control connection source IP 192.168.1.145
12:06:29 Trace: tls_layer_impl::client_handshake()
12:06:29 Trace: Trying to resume existing TLS session.
12:06:29 Command:           MLSD

我確實使用 macOS Big Sur 11.2 和不同的 MacBook(Intel)在相同的 Wifi 網路上使用相同版本的 FileZilla 進行了測試,它可以正常工作。

我還注意到,在 M1 Big Sur 11.4 和 11.5 上,有時 Chrome 會出現“連接超時”,我也無法透過 SSH 連線。我敢打賭 TCP 上有問題。

更新:所以我用 Wireshark 檢查了流量,看起來由於某種原因有一個 TCP SYN 封包,並且在 Big Sur 11.2 上無法從 FTP 伺服器接收到 SYN ACK。對於 Big Sur 11.4 和 11.5,有 TCP SYN,但沒有來自伺服器的 ACK 回應。伺服器將收到 SYN,但不會用 ACK 回應該封包。

答案1

問題是由 CentOS 端的配置引起的。這影響了 Big Sur 11.3+,因為 11.2 可以正常工作。 Windows 10 也運作良好,沒有任何問題。

修復者:

sysctl -w net.ipv4.tcp_tw_recycle=0

相關內容