Я попытался поделиться интернетом со своего смартфона, и он работал на моем ПК. Когда я переключился на модемное соединение, я могу войти на FTP-сервер, но он не показывает мне каталоги.

Я попытался также перенаправить порты 20 и 21 на моем маршрутизаторе, но я не уверен, что это правильно. Кто-то может сказать мне, что положить в эти поля? введите описание изображения здесь

Я также пробовал активный и пассивный режимы, но ничего не изменилось. Сайт www.binini.it, я пробовал много клиентов, таких как FileZilla, CoreFtp и Cyberduck. Я заметил, что с net2ftp это работает.

Вот трассировка FileZilla.

Status: Connecting to 209.227.193.130:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/**hidden**" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing
Status: Disconnected from server
Status: Connecting to 209.227.193.130:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/**hidden**" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing

С помощью ftp.exe я могу войти в систему, но после "цитаты из pasv" меня уложили в стек. Терминал ответь мне "соединение закрыто с удаленного хоста".

Это полный журнал отладки:

Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 0
Status: Connecting to 209.227.193.130:21...
Status: Connection established, waiting for welcome message...
Trace:  CFtpControlSocket::OnReceive()
Response:   220 Microsoft FTP Service
Trace:  CFtpLogonOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 2
Command:    AUTH TLS
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 3
Command:    AUTH SSL
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 3
Status: Insecure server, it does not support FTP over TLS.
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    USER w8km01a130
Trace:  CFtpControlSocket::OnReceive()
Response:   331 Password required for w8km01a130.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    PASS **********
Trace:  CFtpControlSocket::OnReceive()
Response:   230 User logged in.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 6
Command:    SYST
Trace:  CFtpControlSocket::OnReceive()
Response:   215 Windows_NT
Trace:  CFtpLogonOpData::ParseResponse() in state 6
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 7
Command:    FEAT
Trace:  CFtpControlSocket::OnReceive()
Response:   211-Extended features supported:
Response:    LANG EN*
Response:    UTF8
Trace:  CFtpControlSocket::OnReceive()
Response:    AUTH TLS;TLS-C;SSL;TLS-P;
Response:    PBSZ
Response:    PROT C;P;
Response:    CCC
Response:    HOST
Trace:  CFtpControlSocket::OnReceive()
Response:    SIZE
Response:    MDTM
Response:    REST STREAM
Response:   211 END
Trace:  CFtpLogonOpData::ParseResponse() in state 7
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 9
Command:    OPTS UTF8 ON
Trace:  CFtpControlSocket::OnReceive()
Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
Trace:  CFtpLogonOpData::ParseResponse() in state 9
Status: Logged in
Trace:  Measured latency of 62 ms
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 1
Command:    PWD
Trace:  CFtpControlSocket::OnReceive()
Response:   257 "/w8km01a130" is current directory.
Trace:  CFtpChangeDirOpData::ParseResponse() in state 1
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CControlSocket::ParseSubcommandResult(0)
Trace:  CFtpListOpData::SubcommandResult() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 2
Trace:  CFtpRawTransferOpData::Send() in state 1
Command:    TYPE I
Trace:  CFtpControlSocket::OnReceive()
Response:   200 Type set to I.
Trace:  CFtpRawTransferOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 2
Command:    PASV
Trace:  CRealControlSocket::OnClose(106)
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Trace:  CControlSocket::DoClose(66)
Trace:  CFtpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Trace:  CFtpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Error:  Failed to retrieve directory listing
Trace:  CFileZillaEnginePrivate::ResetOperation(66)
Status: Disconnected from server
Trace:  CControlSocket::DoClose(66)
Trace:  CControlSocket::DoClose(66)
Trace:  CControlSocket::DoClose(66)
Trace:  CFileZillaEnginePrivate::ResetOperation(0)
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 0
Status: Connecting to 209.227.193.130:21...
Status: Connection established, waiting for welcome message...
Trace:  CFtpControlSocket::OnReceive()
Response:   220 Microsoft FTP Service
Trace:  CFtpLogonOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 2
Command:    AUTH TLS
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 3
Command:    AUTH SSL
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 3
Status: Insecure server, it does not support FTP over TLS.
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    USER w8km01a130
Trace:  CFtpControlSocket::OnReceive()
Response:   331 Password required for w8km01a130.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    PASS **********
Trace:  CFtpControlSocket::OnReceive()
Response:   230 User logged in.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 9
Command:    OPTS UTF8 ON
Trace:  CFtpControlSocket::OnReceive()
Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
Trace:  CFtpLogonOpData::ParseResponse() in state 9
Status: Logged in
Trace:  Measured latency of 81 ms
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 1
Command:    PWD
Trace:  CFtpControlSocket::OnReceive()
Response:   257 "/w8km01a130" is current directory.
Trace:  CFtpChangeDirOpData::ParseResponse() in state 1
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CControlSocket::ParseSubcommandResult(0)
Trace:  CFtpListOpData::SubcommandResult() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 2
Trace:  CFtpRawTransferOpData::Send() in state 1
Command:    TYPE I
Trace:  CFtpControlSocket::OnReceive()
Response:   200 Type set to I.
Trace:  CFtpRawTransferOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 2
Command:    PASV
Trace:  CRealControlSocket::OnClose(106)
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Trace:  CControlSocket::DoClose(66)
Trace:  CFtpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Trace:  CFtpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Error:  Failed to retrieve directory listing
Trace:  CFileZillaEnginePrivate::ResetOperation(66)

Это след от моего общего телефона:

    Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 0
Status: Connecting to 209.227.193.130:21...
Status: Connection established, waiting for welcome message...
Trace:  CFtpControlSocket::OnReceive()
Response:   220 Microsoft FTP Service
Trace:  CFtpLogonOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 2
Command:    AUTH TLS
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 3
Command:    AUTH SSL
Trace:  CFtpControlSocket::OnReceive()
Response:   534 Local policy on server does not allow TLS secure connections.
Trace:  CFtpLogonOpData::ParseResponse() in state 3
Status: Insecure server, it does not support FTP over TLS.
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    USER w8km01a130
Trace:  CFtpControlSocket::OnReceive()
Response:   331 Password required for w8km01a130.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 5
Command:    PASS **********
Trace:  CFtpControlSocket::OnReceive()
Response:   230 User logged in.
Trace:  CFtpLogonOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 6
Command:    SYST
Trace:  CFtpControlSocket::OnReceive()
Response:   215 Windows_NT
Trace:  CFtpLogonOpData::ParseResponse() in state 6
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 7
Command:    FEAT
Trace:  CFtpControlSocket::OnReceive()
Response:   211-Extended features supported:
Trace:  CFtpControlSocket::OnReceive()
Response:    LANG EN*
Response:    UTF8
Trace:  CFtpControlSocket::OnReceive()
Response:    AUTH TLS;TLS-C;SSL;TLS-P;
Response:    PBSZ
Response:    PROT C;P;
Response:    CCC
Trace:  CFtpControlSocket::OnReceive()
Response:    HOST
Trace:  CFtpControlSocket::OnReceive()
Response:    SIZE
Response:    MDTM
Response:    REST STREAM
Response:   211 END
Trace:  CFtpLogonOpData::ParseResponse() in state 7
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpLogonOpData::Send() in state 9
Command:    OPTS UTF8 ON
Trace:  CFtpControlSocket::OnReceive()
Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
Trace:  CFtpLogonOpData::ParseResponse() in state 9
Status: Logged in
Trace:  Measured latency of 276 ms
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 0
Trace:  CFtpChangeDirOpData::Send() in state 1
Command:    PWD
Trace:  CFtpControlSocket::OnReceive()
Response:   257 "/w8km01a130" is current directory.
Trace:  CFtpChangeDirOpData::ParseResponse() in state 1
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CControlSocket::ParseSubcommandResult(0)
Trace:  CFtpListOpData::SubcommandResult() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 2
Trace:  CFtpRawTransferOpData::Send() in state 1
Command:    TYPE I
Trace:  CFtpControlSocket::OnReceive()
Response:   200 Type set to I.
Trace:  CFtpRawTransferOpData::ParseResponse() in state 1
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 2
Command:    PASV
Trace:  CFtpControlSocket::OnReceive()
Response:   227 Entering Passive Mode (66,71,190,20,195,87).
Trace:  CFtpRawTransferOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 4
Trace:  Destination IP of data connection does not match peer IP of control connection. Not binding source address of data connection.
Command:    LIST
Trace:  CTransferSocket::OnConnect
Trace:  CFtpControlSocket::OnReceive()
Response:   150 Opening BINARY mode data connection.
Trace:  CFtpRawTransferOpData::ParseResponse() in state 4
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 5
Trace:  CFtpControlSocket::OnReceive()
Response:   226 Transfer complete.
Trace:  CFtpRawTransferOpData::ParseResponse() in state 5
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 8
Trace:  CTransferSocket::OnReceive(), m_transferMode=0
Trace:  CTransferSocket::OnClose(0)
Trace:  CTransferSocket::TransferEnd(1)
Trace:  CFtpControlSocket::TransferEnd()
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Trace:  CControlSocket::ParseSubcommandResult(0)
Trace:  CFtpListOpData::SubcommandResult() in state 3
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpListOpData::ListSend() in state 4
Status: Calculating timezone offset of server...
Command:    MDTM Main.Master
Trace:  CFtpControlSocket::OnReceive()
Response:   213 20170703210504
Trace:  CFtpListOpData::ParseResponse() in state 4
Status: Timezone offset of server is 7200 seconds.
Trace:  CFtpControlSocket::ResetOperation(0)
Trace:  CControlSocket::ResetOperation(0)
Status: Directory listing of "/w8km01a130" successful
Trace:  CFileZillaEnginePrivate::ResetOperation(0)

2 ответа2

0

Из успешного следа:

Статус: Подключение к 209.227.193.130:21 ...
...
Команда: PASV
Ответ: 227 Вход в пассивный режим (66,71,190,20,195,87).
...
Трассировка: IP-адрес назначения подключения к данным не совпадает с IP-адресом контрольного подключения ....

В ответе на пассивную команду говорится, что сервер должен быть подключен к 66.71.190.20 порту 50007 (195 * 256+87) для передачи данных. Обратите внимание, что этот IP-адрес отличается от адреса сервера, к которому вы подключены. Хотя теоретически исходный протокол FTP поддерживает этот режим работы, когда сервер для управляющего соединения отличается от сервера для соединения для передачи данных, он весьма необычен и, скорее всего, вызван неверной конфигурацией на стороне сервера. Исходя из трассировки, я бы сказал, что это фактически другой адрес на том же сервере.

И это, вероятно, причина неудачного переноса. В журнале вашего маршрутизатора TP-Link вы найдете следующую реакцию на команду PASV:

Команда: PASV
Ошибка: отключено от сервера: ECONNABORTED - соединение прервано

Я бы интерпретировал это, поскольку помощник FTP на маршрутизаторе прервал соединение FTP, потому что команда PASV привела к неожиданному ответу, так как IP-адрес внутри PASV, который следует использовать для подключения к данным, не совпадает с IP-адресом управляющего подключения.

Это также объясняет, почему проблемы возникают только с этим конкретным сервером, потому что все остальные серверы не показывают такого необычного поведения.

Но в случае, если это действительно просто другой адрес на том же сервере, вы можете попробовать подключиться по FTP к 66.71.190.20 вместо 209.227.193.130. Надеемся, что первый будет успешным, так как IP в управляющем соединении и ответ PASV тогда одинаковы.

0

FTP - это просто кошмарный протокол, потому что он использует динамические порты, а обмен соответствующими номерами портов осуществляется на прикладном уровне. Это означает, что часто помощники участвуют в межсетевых экранах или маршрутизаторах NAT или у интернет-провайдера и оператора мобильной связи (для NAT операторского уровня), которые могут работать или не работать.

Проблемы, в частности, связаны с использованием FTPS (то есть зашифрованного FTP), когда вспомогательное приложение не может получить номера портов, потому что трафик зашифрован. Проблема также связана с более новыми коммандос, которые были добавлены для поддержки IPv6, но которые также часто используются без IPv6 (т.е. EPRT, EPSV вместо PORT и PASV).

Короче говоря: попробуйте использовать SFTP вместо FTP/FTPS. SFTP - это передача файлов поверх SSH, он более безопасен и не имеет проблем с FTP(S) в отношении динамических портов. Конечно, сервер должен поддерживать это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .