在 Debian 上管理 FTP 服务器,常见做法是使用 vsftpd(最常用、稳定、安全),也可以用 ProFTPD 或 Pure-FTPd。下面以 vsftpd 为主,从安装、配置、用户管理、安全、常见问题几个方面系统说明。
sudo apt update
sudo apt install vsftpd
安装完成后服务会自动启动:
sudo systemctl status vsftpd
配置文件路径:
/etc/vsftpd.conf
建议先备份:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
编辑配置:
sudo nano /etc/vsftpd.conf
推荐配置(匿名只读 + 本地用户可上传):
# 禁止匿名用户登录(更安全)
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户限制在其 home 目录(重要)
chroot_local_user=YES
# 允许写 chroot(Debian 10+ 必须)
allow_writeable_chroot=YES
# 使用被动模式(公网服务器推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# 日志
xferlog_enable=YES
保存后重启:
sudo systemctl restart vsftpd
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo usermod -s /usr/sbin/nologin ftpuser
| 类型 | 端口 |
|---|---|
| 命令 | 21 |
| 被动模式数据 | 30000–31000 |
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
Debian 默认 不使用 SELinux,可以忽略。
ftp localhost
或用图形工具:
如果不需要传统 FTP,直接禁用 FTP,用 SFTP:
# SFTP 由 SSH 提供,无需额外服务
sftp user@server_ip
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES
| 软件 | 适合场景 |
|---|---|
| vsftpd | 简单、稳定 |
| ProFTPD | 类 Apache 配置 |
| Pure-FTPd | 虚拟用户、Web 管理 |
✅ 内网 / 简单共享:vsftpd
✅ 公网服务器:vsftpd + TLS
✅ 高安全需求:直接用 SFTP(SSH)
如果你愿意,可以告诉我:
我可以给你一份 完全适配你环境的 vsftpd 配置。