vsftpd (Very Secure FTP Daemon) 是Linux下常用的FTP服务器软件。以下是配置vsftpd实现远程连接的详细步骤:
# Ubuntu/Debian
sudo apt update
sudo apt install vsftpd
# CentOS/RHEL
sudo yum install vsftpd
编辑配置文件 /etc/vsftpd.conf
:
sudo nano /etc/vsftpd.conf
修改或添加以下配置项:
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 本地用户创建文件的umask
local_umask=022
# 允许匿名登录(根据需求设置)
anonymous_enable=NO
# 禁止匿名用户上传(如果允许匿名登录)
# anon_upload_enable=NO
# 禁止匿名用户创建目录
# anon_mkdir_write_enable=NO
# 使用本地时间而不是GMT
use_localtime=YES
# 启用被动模式(PASV)连接
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
# 允许被动模式使用服务器IP(重要,用于远程连接)
pasv_address=你的服务器公网IP
# 禁止用户离开其主目录
chroot_local_user=YES
allow_writeable_chroot=YES
# 用户列表配置
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo useradd -m -d /home/ftpuser -s /bin/false ftpuser
sudo passwd ftpuser
将允许访问FTP的用户添加到/etc/vsftpd.userlist
:
sudo nano /etc/vsftpd.userlist
添加用户名,每行一个:
ftpuser
otheruser
# 开放FTP端口(21)和被动模式端口范围
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
对于CentOS/RHEL:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
sudo firewall-cmd --reload
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla)连接: - 主机: 你的服务器IP - 用户名: ftpuser - 密码: 你设置的密码 - 端口: 21
连接超时:
pasv_address
配置530 Login incorrect:
/etc/vsftpd.userlist
中/etc/pam.d/vsftpd
配置500 OOPS: vsftpd: refusing to run with writable root inside chroot():
allow_writeable_chroot=YES
425 Failed to establish connection:
pasv_enable=YES
/var/log/vsftpd.log
希望以上配置能帮助你成功设置vsftpd远程连接!