在 Debian 上搭建 FTP 服务器,最常用、稳定、安全的选择是 vsftpd(Very Secure FTP Daemon)。下面给你一套从零开始的完整搭建流程,适用于 Debian 11 / 12(也适用于 Ubuntu)。
sudo apt update
sudo apt install vsftpd -y
安装完成后,服务会自动启动。
检查状态:
sudo systemctl status vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
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
⚠️ 不建议直接用 root 登录 FTP
sudo adduser ftpuser
设置密码。
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
查看状态:
sudo ufw status
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
ftp 服务器IP
cat /etc/shells
确保用户 shell 是合法 shell(如 /bin/bash)
添加:
allow_writeable_chroot=YES
✅ 一定要配置 被动模式 + 安全组放行端口
✅ 禁止 root 登录
✅ 使用被动模式
✅ 配置防火墙
✅ 只开放必要端口
✅ 考虑使用 SFTP(SSH) 替代 FTP(更安全)
如果你不需要“传统 FTP”,强烈推荐 SFTP:
# 直接用 SSH
sftp user@服务器IP
无需额外安装 FTP 软件 ✅
如果你愿意,可以告诉我:
我可以帮你定制一套适合你环境的 FTP 配置。