Для налаштування пасивного режиму для 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
Моя зона "загальнодоступна", тому я встановлюю свою зону загальнодоступною, додаю діапазон портів, після чого перезавантажуємо:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
Що відбувається, коли ви встановите зв’язок
Ваш клієнт встановлює з'єднання з сервером vsftpd на порту 21.
Різниця відповідає клієнту, повідомляючи йому, до якого порту підключитися з діапазону, зазначеного вище.
Клієнт здійснює з'єднання даних на вказаному порту і сеанс продовжується.
Тут є чудове пояснення різних режимів ftp .
max
порт післяmin
..., але ще важливіше, якщо ви відкриєте порти 10090 до 10100, це 11 портів, а не 10, як ви кажете.