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. 常见问题排查
- 无法上传文件
- 检查 write_enable 是否开启,同时目录权限是否正确。
- 连接超时
- 检查防火墙和被动端口是否已放行。
- 530 Login incorrect
- 检查用户名密码是否正确,或 /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 可以更好地保护数据传输。
