FTP-клиенты (любые) зависают на MLSD в пассивном режиме в macOS Big Sur 11.4 и 11.5.

Недавно я заметил странную проблему с macOS Big Sur 11.4 и 11.5 (Mac M1), когда все FTP-клиенты, независимо от того, какой я их использую, в конечном итоге сталкиваются с одной и той же проблемой. (CyberDuck, 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) в одной сети Wi-Fi с той же версией FileZilla, и все работает без проблем.

Также я заметил, что на M1 Big Sur 11.4 и 11.5 иногда Chrome получает «тайм-аут соединения», и я также не могу подключиться через SSH. Могу поспорить, что с TCP что-то не так.

Обновление: Итак, я проверил трафик с помощью Wireshark и, похоже, по какой-то причине есть один пакет TCP SYN, а на Big Sur 11.2 я получу SYN ACK от FTP-сервера. В 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
Другие вопросы по тегам