![FTP 클라이언트(모든)는 macOS Big Sur 11.4 및 11.5에서 수동 모드를 사용하는 MLSD에 정지됩니다.](https://rvso.com/image/1654354/FTP%20%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8(%EB%AA%A8%EB%93%A0)%EB%8A%94%20macOS%20Big%20Sur%2011.4%20%EB%B0%8F%2011.5%EC%97%90%EC%84%9C%20%EC%88%98%EB%8F%99%20%EB%AA%A8%EB%93%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20MLSD%EC%97%90%20%EC%A0%95%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4..png)
최근에 macOS Big Sur 11.4 및 11.5(Mac M1)에서 어떤 FTP 클라이언트를 사용하든 동일한 문제가 발생하는 이상한 문제를 발견했습니다. (CyberDuck, FileZilla 또는 그냥 평범한 MC). 동일한 OS를 사용하는 다른 네트워크의 다른 사용자가 문제를 보고했습니다.
문제는 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
동일한 버전의 FileZilla를 사용하는 동일한 Wi-Fi 네트워크에서 다른 MacBook(Intel)을 사용하는 macOS Big Sur 11.2로 이것을 테스트했는데 문제 없이 작동합니다.
또한 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 측의 구성으로 인해 문제가 발생했습니다. 이는 11.2가 제대로 작동했기 때문에 Big Sur 11.3+에 영향을 미쳤습니다. Windows 10도 문제 없이 잘 작동했습니다.
해결 방법:
sysctl -w net.ipv4.tcp_tw_recycle=0