Debian FTP服务器怎么搭建
在 Debian 上搭建 FTP 服务器,最常用、稳定、安全的选择是 vsftpd(Very Secure FTP Daemon)。下面给你一套从零开始的完整搭建流程,适用于 Debian 11 / 12(也适用于 Ubuntu)。
一、安装 vsftpd
sudo apt update
sudo apt install vsftpd -y
安装完成后,服务会自动启动。
检查状态:
sudo systemctl status vsftpd
二、备份并编辑配置文件
1️⃣ 备份原配置
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
2️⃣ 编辑配置文件
sudo nano /etc/vsftpd.conf
三、常用推荐配置(适合大多数场景)
✅ 基础配置
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 本地用户上传文件的权限(022 = 755)
local_umask=022
# 禁止用户离开家目录(推荐使用)
chroot_local_user=YES
# 允许写 chroot(Debian 必须)
allow_writeable_chroot=YES
# 被动模式(非常重要,云服务器必须)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
四、创建 FTP 用户(推荐方式)
⚠️ 不建议直接用 root 登录 FTP
1️⃣ 创建用户
sudo adduser ftpuser
设置密码。
2️⃣ 指定 FTP 目录(可选)
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
五、防火墙设置
1️⃣ 开放 FTP 端口
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
查看状态:
sudo ufw status
六、重启 vsftpd
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
七、测试 FTP 连接
在 Linux / macOS
ftp 服务器IP
在 Windows
- 使用 FileZilla
- 协议:FTP
- 加密:只使用明文 FTP(或选“只使用被动模式”)
八、常见错误 & 解决方法
❌ 530 Login incorrect
- 用户被 nologin 限制
- 检查:
cat /etc/shells
确保用户 shell 是合法 shell(如 /bin/bash)
❌ 500 OOPS: vsftpd: refusing to run with writable root inside chroot
添加:
allow_writeable_chroot=YES
❌ 云服务器连不上
✅ 一定要配置 被动模式 + 安全组放行端口
九、安全加固建议(强烈推荐)
✅ 禁止 root 登录
✅ 使用被动模式
✅ 配置防火墙
✅ 只开放必要端口
✅ 考虑使用 SFTP(SSH) 替代 FTP(更安全)
十、替代方案(更安全)
如果你不需要“传统 FTP”,强烈推荐 SFTP:
# 直接用 SSH
sftp user@服务器IP
无需额外安装 FTP 软件 ✅
如果你愿意,可以告诉我:
- ✅ 是 云服务器 还是 内网
- ✅ 是否需要 匿名访问
- ✅ 是否要 虚拟用户
- ✅ Debian 版本
我可以帮你定制一套适合你环境的 FTP 配置。