Я установил FTP-сервер на виртуальной машине в моей частной сети. У меня есть внешний IP-адрес - xxxx
, и я использую pfSense
для перенаправления портов. Мой FTP-сервер - vsftpd
, моя ОС - новейшая Ubuntu 16.04
.
Внутренний адрес FTP - 192.168.1.34
, внешний адрес самого сервера - xxxx
.
Я знаю, что мне нужно перенаправить порт 21 и 20, и я это сделал. Вот правила NAT из pfSense
:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
allow_writeable_chroot=YES
port_enable=YES
pasv_addr_resolve=NO
connect_from_port_20=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=x.x.x.x
Мне кажется, все в порядке, но когда я пытаюсь подключиться к своему серверу, я получаю Ошибка: время ожидания подключения истекло. Ошибка: не удалось получить список каталогов.
Я сделал sudo ufw disable
.
Не транслируйте порты данных в правиле pfsense NAT. Входящий на порт назначения 400xx должен подключаться к 400xx на сервере vsftpd, а не к 20 + xx, как у вас сейчас.