为什么我无法使用 Windows 资源管理器访问我的 FTP 服务器?

为什么我无法使用 Windows 资源管理器访问我的 FTP 服务器?

我有一个在 Google Compute Engine 上运行 Ubuntu 16.0.4 LTS 的实例,并且端口 21 已打开。我已在其上安装了 vsftpd,为 FTP 服务添加了一个用户,并将目录权限设置为该用户的完全访问权限。我能够使用命令提示符连接到 FTP 服务器,ftp $IP_ADDRESS并使用用户名和密码登录。

一旦这样,我就可以根据需要下载和上传文件以及创建和管理目录。但是,如果我尝试使用 Windows 资源管理器访问 FTP 服务器ftp://$IP_ADDRESS,系统会按预期提示我输入用户名和密码,但当我输入用户名和密码时,服务器会立即重置连接,并且我会收到一条消息,指出:

打开 FTP 服务器上的该文件夹时出错。请确保您有访问该文件夹的权限。详细信息:与服务器的连接已重置。

以下是我的文件内容vsftpd.conf。如何才能从 Windows 资源管理器访问它?

listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=777
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=myftpuser
ftpd_banner=My FTP
ls_recurse_enable=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

答案1

尝试以下设置:

local_umask=077
connect_from_port_20=NO
ascii_download_enable=YES
ascii_upload_enable=YES
nopriv_user=ftpuser

答案2

我知道这个问题很久以前就出现了,我希望你已经解决了这个问题,如果没有,我会尝试添加我所做的事情和对我有用的东西。我希望这能对你有所帮助。

尝试将以下内容添加到您的vsftpd.conf文件(或您想要的端口)中:

pasv_min_port=40000
pasv_max_port=45000

然后在 GCP 项目 FW 中添加新的防火墙规则

然后在 GCP 项目 FW 中添加新的防火墙规则

这是添加到实例的标签

这是添加到实例的标签

之后我就能ftp://$IP_ADDRESS成功使用。

万一你需要的话,这是我的完整vsftpd.conf文件:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=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
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
pasv_min_port=40000
pasv_max_port=45000

相关内容