在 Linux 中搭建 vsftpd 服务器的完整教程










1. 前言


vsftpd(Very Secure FTP Daemon)是 Linux 上最常用、最安全高效的 FTP 服务器之一。本文将从零开始手把手教你如何在 Linux 中搭建 vsftpd 服务器,让新手也能快速上手。





2. 环境准备



  • 操作系统:CentOS 7/8 或 Ubuntu 20.04/22.04
  • 权限:root 或有 sudo 权限的用户
  • 网络:确保服务器端口 21 可访问






3. 安装 vsftpd




在 CentOS / RHEL 上:


sudo yum update -y

sudo yum install -y vsftpd


在 Ubuntu / Debian 上:


sudo apt update -y

sudo apt install -y vsftpd

安装完成后检查版本:

vsftpd -v





4. 启动并开机自启服务


sudo systemctl start vsftpd

sudo systemctl enable vsftpd

sudo systemctl status vsftpd





5. 配置 vsftpd



主配置文件路径:/etc/vsftpd/vsftpd.conf

建议先备份:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

编辑配置文件:

sudo nano /etc/vsftpd/vsftpd.conf

推荐基础配置:

anonymous_enable=NO # 禁用匿名访问

local_enable=YES # 允许本地用户登录

write_enable=YES # 允许上传文件

chroot_local_user=YES # 将用户锁定在其主目录

allow_writeable_chroot=YES # 允许写入chroot目录

pasv_enable=YES # 开启被动模式

pasv_min_port=40000 # 被动模式端口范围

pasv_max_port=50000

保存后重启服务:

sudo systemctl restart vsftpd





6. 创建 FTP 用户


sudo useradd ftpuser -m -s /sbin/nologin

sudo passwd ftpuser

给用户分配目录权限:

sudo mkdir -p /home/ftpuser/ftpfiles

sudo chown ftpuser:ftpuser /home/ftpuser/ftpfiles





7. 配置防火墙




CentOS / RHEL


sudo firewall-cmd --zone=public --add-service=ftp --permanent

sudo firewall-cmd --zone=public --add-port=40000-50000/tcp --permanent

sudo firewall-cmd --reload


Ubuntu / Debian


sudo ufw allow 21/tcp

sudo ufw allow 40000:50000/tcp

sudo ufw reload





8. 测试 FTP 连接



在本地或远程使用 FTP 客户端(如 FileZilla)连接:


  • 主机:服务器 IP
  • 用户名:ftpuser
  • 密码:刚设置的密码
  • 端口:21






9. 高级配置




限制用户上传速率



在 /etc/vsftpd/vsftpd.conf 中添加:

local_max_rate=50000 # 单位:bytes/s


仅允许特定用户访问


sudo nano /etc/vsftpd/user_list

添加需要允许的用户名。

在 vsftpd.conf 中开启:

userlist_enable=YES

userlist_deny=NO





10. 常见问题排查



  1. 无法上传文件
  2. 检查 write_enable 是否开启,同时目录权限是否正确。
  3. 连接超时
  4. 检查防火墙和被动端口是否已放行。
  5. 530 Login incorrect
  6. 检查用户名密码是否正确,或 /etc/ftpusers 中是否屏蔽了该用户。






11. 关键命令速查表


功能

命令

启动 vsftpd

systemctl start vsftpd

停止 vsftpd

systemctl stop vsftpd

重启 vsftpd

systemctl restart vsftpd

查看状态

systemctl status vsftpd

测试端口

telnet <IP> 21

查看日志

tail -f /var/log/vsftpd.log





12. 总结



通过本文,你可以在 Linux 中快速搭建一台安全、可用的 FTP 服务器,并掌握基础排错思路。vsftpd 是生产环境中非常成熟的选择,搭建完成后配合安全组与 SSL 可以更好地保护数据传输。

原文链接:,转发请注明来源!