在 Ubuntu 上搭建 加密的 FTP 服务器,通常有两种主流方案:
下面分别说明,并给出推荐方案。
SFTP ≠ FTP + SSL
SFTP 是基于 SSH 的文件传输协议,天然加密,不需要额外证书。
sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
客户端连接方式:
sftp user@服务器IP
或使用工具:
✅ 优点
✅ 默认端口
22如果你必须使用 FTP 协议(如业务要求),可以使用 vsftpd + SSL。
sudo apt install vsftpd
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
编辑配置文件:
sudo nano /etc/vsftpd.conf
关键配置:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
sudo systemctl restart vsftpd
⚠️ 注意:
| 项目 | SFTP | FTPS |
|---|---|---|
| 加密方式 | SSH | SSL/TLS |
| 端口 | 22 | 21 + 随机端口 |
| 配置复杂度 | 简单 | 复杂 |
| 防火墙友好 | ✅ | ❌ |
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐ |
✅ 新系统 / 通用需求 → SFTP
✅ 必须用 FTP 协议 → FTPS(vsftpd + SSL)
如果你愿意,可以告诉我:
我可以给你一套完整可用的配置方案。