我在私有网络中的虚拟机上设置了一个 FTP 服务器。我有一个外部 IP 地址 -x.x.x.x
并用于pfSense
转发端口。我的 FTP 服务器是vsftpd
,我的操作系统是最新的Ubuntu 16.04
。
FTP内部地址是192.168.1.34
,服务器本身的外部地址是x.x.x.x
。
我知道我应该转发端口 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
对我来说一切似乎都很好,但是当我尝试连接到我的服务器时,我得到了Error: Connection timed out. Error: Failed to retrieve directory listing.
我做到了sudo ufw disable
。
答案1
不要转换 pfSense NAT 规则中的数据端口。入站到目标端口 400xx 需要连接到 vsftpd 服务器上的 400xx,而不是您现在拥有的 20+xx。