У меня очень простой FTP-сервер, работающий на Windows 10. Прямо сейчас у меня нет проблем с доступом к этому серверу из моей WLAN. Однако, когда я пытаюсь подключиться из-за пределов своей сети - используя мой публичный IP-адрес на порту 21 - я получаю сообщение об ошибке из Chrome, Windows Explorer, Mozzila, Filezilla и т.д.

Я проверил несколько раз, и порт 21 открыт с помощью CanYouSeeme.org. Кроме того, когда я провожу тестирование по FTP с использованием моего публичного IP-адреса на 21-м порту, все выглядит нормально, я даже получаю список каталогов тех файлов, которые у меня сейчас есть, в рабочем каталоге.

В чем может быть проблема?

Дополнительная информация: я добавил правило для FTP на моем брандмауэре, но теперь он отключен как для частных, так и для публичных сетей.

2 ответа2

2

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

Чтобы избежать этой проблемы, вам нужно использовать пассивный FTP. Пассивный FTP заставляет клиента инициировать оба соединения. Это означает, что клиенту не нужно возиться с входящими правилами брандмауэра или переадресацией порта NAT. Однако это также означает, что вам необходимо открыть как минимум два порта на стороне сервера: порт команды FTP (21) и один или несколько портов данных FTP (может быть больше 1024), а затем указать серверу использовать эти порты. для данных. Эти порты должны быть разрешены как в брандмауэре (если он у вас включен), так и перенаправлены через NAT (если ваш сервер не работает в NAT DMZ, и в этом случае весь неожиданный трафик перенаправляется на него, но вы действительно должны включить брандмауэр обратно).

Эта страница не лучшее объяснение активного и пассивного FTP, но она говорит о настройке IIS для пассивного FTP, поэтому, возможно, она вам поможет: http://www.velikan.net/iis-passive-ftp/

0

Пассивный FTP помогает, если ваш клиент находится за шлюзом NAT (или межсетевым экраном). Активный FTP помогает, если ваш сервер находится за шлюзом NAT (или межсетевым экраном). Вы не можете быть одновременно активными и пассивными в одной и той же операции.

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

Большинство современных FTP-клиентов по умолчанию используют пассивный FTP. Если бы я был вами, я бы сказал моему клиенту попробовать Active FTP в надежде, что у шлюза NAT, за которым находится мой клиент, есть FTP ALG в стиле клиента в своем коде шлюза NAT.

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