Пассивный режим для FileZilla FTP не работает

У нас есть сервер FileZilla 0.9.37, работающий на Windows Server 2008 R2

Активный режим работает нормально, брандмауэр Windows на сервере выключен.

Наш Маршрутизатор - DrayTek vigor 2820. Под NAT, Open Ports, я открыл следующие порты для локальных IP серверов

TCP 20-22, TCP 45100-65535

На сервере FileZilla, в настройках пассивного режима (я не могу опубликовать изображение, так что...)

Use the following IP: 213.106.150.123
Don't use external IP from local connections: Checked
Use custom port range: 45100-65535

С удаленного сервера в Германии, на котором я RDP, я пытаюсь подключиться обратно к серверу FileZilla.

Status: Connecting to 213.106.150.123:21...
Status: Connection established, waiting for welcome message...
Response:   220 --
Command:    USER ftp_001471
Response:   331 Password required for ftp_001471
Command:    PASS ********
Response:   230 Logged on
Status: Connected
Status: Retrieving directory listing...
Command:    CWD /
Response:   250 CWD successful. "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I
Command:    PASV
Response:   227 Entering Passive Mode (213,106,150,123,238,133)
Command:    MLSD
Response:   425 Can't open data connection.
Error:  Failed to retrieve directory listing

Окно состояния на сервере FileZilla сообщает следующее

(not logged in) (87.106.131.22)> Connected, sending welcome message...
(not logged in) (87.106.131.22)> 220 --
(not logged in) (87.106.131.22)> USER ftp_001471
(not logged in) (87.106.131.22)> 331 Password required for ftp_001471
(not logged in) (87.106.131.22)> PASS ********
ftp_001471 (87.106.131.22)> 230 Logged on
ftp_001471 (87.106.131.22)> CWD /
ftp_001471 (87.106.131.22)> 250 CWD successful. "/" is current directory.
ftp_001471 (87.106.131.22)> TYPE I
ftp_001471 (87.106.131.22)> 200 Type set to I
ftp_001471 (87.106.131.22)> PASV
ftp_001471 (87.106.131.22)> 227 Entering Passive Mode (213,106,150,123,195,197)
ftp_001471 (87.106.131.22)> MLSD
ftp_001471 (87.106.131.22)> 425 Can't open data connection.

Если я изменю настройку пассивного режима FileZilla с нашего внешнего IP на Default, я получу следующую информацию от клиента из Германии, пытающегося подключиться.

Status: Connecting to 213.106.150.123:21...
Status: Connection established, waiting for welcome message...
Response:   220 --
Command:    USER ftp_001471
Response:   331 Password required for ftp_001471
Command:    PASS ********
Response:   230 Logged on
Status: Connected
Status: Retrieving directory listing...
Command:    CWD /
Response:   250 CWD successful. "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I
Command:    PASV
Response:   227 Entering Passive Mode (213,106,150,123,196,198)
Command:    MLSD
Response:   425 Can't open data connection.
Error:  Failed to retrieve directory listing

И подробности на сервере.

(not logged in) (87.106.131.22)> Connected, sending welcome message...
(not logged in) (87.106.131.22)> 220 --
(not logged in) (87.106.131.22)> USER ftp_001471
(not logged in) (87.106.131.22)> 331 Password required for ftp_001471
(not logged in) (87.106.131.22)> PASS ********
ftp_001471 (87.106.131.22)> 230 Logged on
ftp_001471 (87.106.131.22)> CWD /
ftp_001471 (87.106.131.22)> 250 CWD successful. "/" is current directory.
ftp_001471 (87.106.131.22)> TYPE I
ftp_001471 (87.106.131.22)> 200 Type set to I
ftp_001471 (87.106.131.22)> PASV
ftp_001471 (87.106.131.22)> 227 Entering Passive Mode (192,168,1,4,195,198)
ftp_001471 (87.106.131.22)> MLSD
ftp_001471 (87.106.131.22)> 425 Can't open data connection.

Что я делаю неправильно?

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

Изменить: больше тестирования и его работа.

Поэтому я установил FTP-сервер в IIS 7.5, отключил FileZilla и все заработало! Затем я попытался повторно включить FileZilla, и это тоже сработало! Это все из моего домашнего ADSL-соединения.

Затем я повторил попытку с нашего удаленного сервера в Германии, и он не прошел, зависает в списке каталогов в пассивном режиме как для IIS FTP, так и для FileZilla.

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

3 ответа

Решение

Я предлагаю вам попробовать локально на сервере, используя Windows FTP или другой установленный клиент. Таким образом, вы увидите, если это проблема сети / брандмауэра или проблема с конфигурацией FTP-сервера. Также проверьте файлы журнала сервера Filezilla, если команды.

Если это зависит от брандмауэра, вот статья TechNet, которая может помочь: Как настроить брандмауэр Windows для FTP-сервера в пассивном режиме. Но вы написали, что брандмауэр Windows отключен, поэтому я полагаю, что это проблема внешнего брандмауэра / маршрутизатора (также проверьте на стороне клиента).

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

Я понимаю, что это может быть изменением, но новый сервер FTP в 2008 году очень надежен, и я в итоге заменил им FileZilla. Возможно, вы захотите посмотреть на это.

Другие вопросы по тегам