无法从公共IP访问vsftpd

我正在尝试在Ubuntu上设置一个vsftpd

我已经安装成功安装了vsftpd

我的networking是这样工作的

(localhost,127.0.0.1,192.168.1.105) – >连接到路由器(192.168.1.1(LAN) – > 10.255.1.204(WAN)) – >连接到ISP(10.255.1.1 – > DNS-> 106.34.26.78(公共ip))。 (注:使用的IP地址只是为了说明而不是真实的)

我在我的路由器上启用了端口转发function,将所有请求redirect到端口21到我的本地机器,在这台机器上运行vsftp deamon。

我能够从我的内部LAN地址和连接到ISP的接口(即,10.255.1.204)访问ftp。 但我无法从我的公共IP地址(即106.34.26.78)访问它,我得到以下消息:

Status: Connecting to 106.34.26.78:21... Status: Connection established, waiting for welcome message... Response: 220 (vsFTPd 3.0.2) Command: AUTH TLS Error: Connection timed out after 20 seconds of inactivity Error: Could not connect to server 

我的vsftpd.conf(/etc/vsftpd.conf)

 listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 local_root=/var/www chroot_local_user=YES allow_writeable_chroot=YES hide_ids=YES #virutal user settings user_config_dir=/etc/vsftpd_user_conf guest_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd nopriv_user=vsftpd guest_username=vsftpd 

我的vsftpd(/etc/pam.d/vsftpd)

 auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so 

自从一个月以来,我一直在为此而头痛,我find了很less的文章,但他们与使用公有IP访问没有关系。

编辑

我还启用了端口20上的端口转发。

从你的networking设置你的问题可能是发夹NAT

此外,您似乎尝试与AUTTH TLS命令协商TLS连接,但是您没有任何引用来在vsftpd.conf启用TLS支持

虽然对于不同的FTP服务器,也可以阅读有关FTP over TLS和NAT的潜在问题的答案 。

我最后通过在vsftpd.conf中启用ssl和注释几行来解决这个问题,以允许系统用户而不是使用pam.d定义的行。

我现在可以访问sftp(我有一个强烈的怀疑,我的ISP是阻止访问21,任何如何它给了我更安全的访问),从外部networking与以下/etc/vsftpd.conf

 listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 local_root=/var/www chroot_local_user=YES allow_writeable_chroot=YES hide_ids=YES #virutal user settings user_config_dir=/etc/vsftpd_user_conf #guest_enable=YES virtual_use_local_privs=YES #pam_service_name=vsftpd #nopriv_user=vsftpd #guest_username=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH start on (filesystem and net-device-up IFACE!=lo) 

希望它有助于任何未来遇到相同的人。