Я хотел бы подключиться к ftp-серверу FileZilla, работающему на хосте Windows 7, из ftp-клиента на гостевой Slackware. Я могу успешно войти, pwd cd и т.д. Когда режим пассивный, я могу ls или get но когда активен (пассивный == выключен), я получил следующий результат:

150 Opening data channel for directory listing of "/DNS"
425 Can't open data connection for transfer of "/DNS"
ABOR
226 ABOR command successful

Почему не работает активный режим? Что нужно сделать, чтобы это работало? Я запускаю VirtualBox в сетевом режиме NAT с включенной переадресацией портов.

1 ответ1

0

Активный и пассивный режимы взаимодействуют по-разному.

В пассивном режиме ваш компьютер подключается к порту 21, а затем устанавливает второе исходящее соединение с сервером для передачи данных.

В активном режиме ваш компьютер подключается к порту 21 на сервере, а затем сервер связывается обратно с порта 20 на ваш компьютер.

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

В дополнение к переадресации портов вам потребуется загрузить модули отслеживания подключений (и, возможно, отслеживания подключений FTP). Это зависит от вашей операционной системы, но может быть nf_conntrack_ftp или nf_nat_ftp под Linux.

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