AndShar писал(а):
Что вы имеете ввиду , говоря про адрес ? Правильно я понимаю вы хотите сказать про сервис типа DynDns.org .
Нет. FTP - один (а возможно, и единственный) из не-микрософтовских протоколов, стандарт которого предполагает передачу IP-адресов сервера и клиента ВНУТРИ TCP-пакета, т.е. в блоке данных. При прохождении через маршрутизатор с NAT, адрес отправителя в заголовке пакета заменяется на адрес внешнего интерфейса, как и должно быть. Но классический маршрутизатор никак не обрабатывает содержимое блока данных пакета, и в результате у Вас получается вот такая картина:
Цитата:
220 ProFTPD 1.3.0 Server (NAS FTPD) [192.168.0.121]
В результате, клиент (в пассивном режиме) пытается открыть сессию обмена данными с Вашим сервером по "серому" адресу 192.168.0.121, чего он сделать, естественно, не может.
Проблема эта старая и давно известная. Решать её можно двумя способами:
1. Настроить FTP-сервер так, чтобы он "заворачивал в пакет" не адрес своего локального интерфейса, а какой-то другой, например, задаваемый в настройках. Такие настройки есть в большинстве современных программных серверов. К сожалению, встроенный в NAS-7101 сервер такой возможностью не обладает, во всяком случае, на уровне настроек в интерфейсе пользователя.
2. Проанализировать при прохождении через маршрутизатор содержимое блока данных пакета и заменить в нём адрес на адрес внешнего интерфейса. Такая замена может быть частью функциональности ALG - Application Layer Gateway. Опять же к сожалению, в DI-804 нет FTP ALG.
AndShar писал(а):
DMZ почему-то не срабатывает.
Размещение сервера в DMZ помогает, ценой снижения уровня безопасности до недопустимого в большинстве случаев, в решении другой категории связанных с FTP проблем - разрешения доступа к группе портов сервера извне для организации сессии передачи данных. В нашем случае, это не имеет смысла из-за наличия нерешённой первой проблемы, описанной выше.
Возможный способ доступа к серверу в такой ситуации - использование FTP-клиента, умеющего заменять на внешний (или не обращать внмания на) адрес сервера, передаваемый в пакете. Такая функция есть, например, в FileZilla. Для публичного сервера такой способ вряд ли всерьёз можно считать решением, но если речь идёт о "ресурсе для своих" - то может быть приемлемым.
Ну и активный режим, конечно, со всеми присущими ему особенностями.