插件窝 干货文章 linux如何配置vsftp远程连接

linux如何配置vsftp远程连接

vsftpd 配置 用户 sudo 661    来源:    2025-04-23

Linux下配置vsftpd实现远程FTP连接

vsftpd (Very Secure FTP Daemon) 是Linux下常用的FTP服务器软件。以下是配置vsftpd实现远程连接的详细步骤:

1. 安装vsftpd

# Ubuntu/Debian
sudo apt update
sudo apt install vsftpd

# CentOS/RHEL
sudo yum install vsftpd

2. 配置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

3. 创建FTP用户

方法一:使用系统用户

sudo useradd -m ftpuser
sudo passwd ftpuser

方法二:创建仅FTP用户(不能登录系统)

sudo useradd -m -d /home/ftpuser -s /bin/false ftpuser
sudo passwd ftpuser

4. 设置用户访问权限

将允许访问FTP的用户添加到/etc/vsftpd.userlist

sudo nano /etc/vsftpd.userlist

添加用户名,每行一个:

ftpuser
otheruser

5. 配置防火墙

# 开放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

6. 启动vsftpd服务

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

7. 测试连接

使用FTP客户端(如FileZilla)连接: - 主机: 你的服务器IP - 用户名: ftpuser - 密码: 你设置的密码 - 端口: 21

常见问题解决

  1. 连接超时

    • 检查防火墙设置
    • 确认服务器公网IP正确
    • 检查pasv_address配置
  2. 530 Login incorrect

    • 确认用户名密码正确
    • 检查用户是否在/etc/vsftpd.userlist
    • 检查/etc/pam.d/vsftpd配置
  3. 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

    • 确保配置中有allow_writeable_chroot=YES
  4. 425 Failed to establish connection

    • 检查被动模式端口范围是否开放
    • 确认pasv_enable=YES

安全建议

  1. 考虑使用SFTP(SSH文件传输)代替FTP,更安全
  2. 如果必须使用FTP,建议配置TLS加密
  3. 限制可以访问FTP的用户
  4. 定期检查FTP日志/var/log/vsftpd.log

希望以上配置能帮助你成功设置vsftpd远程连接!