Чтобы настроить пассивный режим для vsftpd, вам нужно установить некоторые параметры в vsftpd.conf.
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
Это включает пассивный режим и ограничивает его использованием одиннадцати портов для передачи данных. Это полезно, так как вам нужно открыть эти порты на вашем брандмауэре.
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
Если после тестирования все это работает, сохраните состояние брандмауэра с помощью
service iptables save
который обновит /etc/sysconfig/iptables
файл.
Для этого CentOS 7 вы должны использовать новый firewalld, а не iptables:
Найдите свою зону:
# firewall-cmd --get-active-zones
public
interfaces: eth0
Моя зона 'public', поэтому я установил свою зону на public, добавил диапазон портов, и после этого мы перезагрузили:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
Что происходит, когда вы делаете соединение
Ваш клиент устанавливает соединение с сервером vsftpd через порт 21.
Сервер отвечает клиенту, сообщая ему, к какому порту подключаться из диапазона, указанного выше.
Клиент устанавливает соединение для передачи данных на указанном порту, и сеанс продолжается.
Здесь есть отличное объяснение различных режимов ftp .
user9517 поддерживает GoFundMonica
источник
max
порт послеmin
... но что более важно, если вы открываете порты с 10090 по 10100, это 11 портов, а не 10, как вы говорите.pasv_address
.Чтобы включить пассивный режим, установите следующие параметры конфигурации в вашем vsftp.conf:
Разумеется, вы можете изменить начальный и конечный порт и заменить xxx на общедоступный IP-адрес вашего сервера.
Кроме того, вы должны открыть диапазон портов пассивного режима в брандмауэре. В centos вы можете загрузить
ip_conntrack_ftp
модуль для обработки соединений ftp в вашем брандмауэре. Отредактируйте/etc/sysconfig/iptables-config
и добавьте ip_conntrack_ftp в параметр IPTABLES_MODULES. После этого перезапустите iptables:источник
pasv_address
это то, что делает трюк, когда все остальное было настроено, и это все еще не работает.pasv_address
, вы должны добавитьpasv_addr_resolve=YES
(по умолчаниюNO
)Кроме того
pasv_enable=YES
, укажите диапазон портов, в котором VSFTP будет работать в режиме PASV:Не забудьте настроить iptables, разрешающий передачу пакетов по этим портам:
источник
iptables -A INPUT ...
к игнорированию добавленных правилpasv_address
в файл vsftpd.conf.Обычно не FTP-сервер, vsftpd, а брандмауэр, такой как iptable, предотвращает использование пассивного режима (блокирование tcp-соединения, необходимого для передачи данных).
источник