FTP 连接始终被拒绝

FTP 连接始终被拒绝

我有一台运行 Ubuntu Server 16.04 的计算机。

我已经设置了 webmin,它运行良好。Webmin 使用自己的端口,我可以在本地网络和远程位置毫无问题地连接到它。

我的 SSH 在其自己的端口上也能正常工作(出于安全原因,已重新配置为我自己选择的端口)。我也可以使用它进行远程和本地连接。

顺便提一下,我还使用 letsencrypt 为我的域名设置了 SSL。不确定是否需要上述任何信息,但我肯定想提供尽可能多的信息,以防这些事情可能导致冲突。

我现在正尝试使用 vsftpd 设置一个简单的 ftp 服务器,以便通过 ftp 客户端将文件直接上传到目录/var/www/html。我打算使用此设置来更新我目前正在处理的网站。此外,如果使用 FTP 不是执行此操作的首选方法,或者您认为有更好的选择,我愿意倾听。我已经花了 10 个小时让这个 FTP 正常工作,这真的很令人沮丧。它似乎应该很简单,可能是由一个简单的错误引起的,有一个简单的修复方法。

无论如何,我按照之前的安装方式操作,在路由器和 webmin 防火墙上都打开了默认端口。然后我使用以下设置配置了 vsftpd。

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
chroot_local_user=NO
allow_writeable_chroot=NO
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

rsa_cert_file=/etc/letsencrypt/live/www.EXAMPLE.com/cert.pem
rsa_private_key_file=/etc/letsencrypt/live/www.EXAMPLE.com/privkey.pem
ssl_enable=YES

local_root=/var/www/html
pasv_min_port=40000
pasv_max_port=50000
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
listen_port=21

根据提供的信息,可能要回答几个问题:1. 我打开了端口 20-22、990 和 40000-50000。20-22 用于 FTP 和 SFTP。990 用于 FTPS。最后,端口 40000-50000 作为我的 pasv 端口。在尝试解决此连接问题时,我打开了所有这些端口。2. 我的用户列表写如下:user1 user2 我不确定程序是否就是这样读取文件的,所以我想提一下。3. 是的,我隐藏了用户名、IP 和域名。so 不是www.example.com我的文件中写的内容。而且user1user2也不是我的真实用户名。

回到问题本身。这是我尝试访问 ftp 时得到的结果:

user1@www:~$ ftp x.x.x.x
ftp: connect: Connection refused
ftp> quit
user1@www:~$ ftp -p x.x.x.x
ftp: connect: Connection refused
ftp> 

无论我是本地并使用本地 IP 地址,还是远程并使用公共 IP,连接都会被拒绝。

任何帮助都将不胜感激。我只想结束这一切。:/

更新 1:

Telnet 给了我以下响应:

user1@www:~$ telnet x.x.x.x 21
Trying x.x.x.x...
telnet: Unable to connect to remote host: Connection refused

答案1

谢谢您的帮助!

文件中的某些设置vsftpd.conf肯定是错误的。将该文件恢复为默认状态后,问题就消失了。

对于遇到相同问题的人,请尝试以下操作:

备份当前配置文件。

sudo mv /etc/vsftpd.conf /etc/vsftpd.backup

卸载 vsftpd 并清除配置文件。

sudo apt-get remove --purge vsftpd

最后,重新安装 vsftpd。

sudo apt-get install vsftpd

现在测试设置。

ftp -p x.x.x.x

显然,将“X”替换为您的实际 IP 地址。如果在网络内,则为本地 IP,如果在网络外,则为公共 IP。

相关内容