在 Linux 上开启 FTPS(FTP over SSL/TLS) 加密,常见做法是使用 vsftpd + SSL/TLS 或 ProFTPD + TLS。下面以 vsftpd(最常用) 为主,给你一份完整的开启加密步骤。
| 类型 | 协议 | 端口 | 加密方式 |
|---|---|---|---|
| FTPS | FTP + SSL/TLS | 21(控制)+ 随机数据端口 | SSL/TLS |
| SFTP | SSH File Transfer | 22 | SSH |
✅ 本文讲的是 FTPS(FTP over SSL/TLS)
# Ubuntu / Debian
sudo apt update
sudo apt install vsftpd
# CentOS / Rocky / Alma
sudo yum install vsftpd
sudo mkdir -p /etc/ssl/private
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/private/vsftpd.crt
按提示填写信息(Common Name 可填服务器 IP 或域名)
编辑配置文件:
sudo vim /etc/vsftpd.conf
# 启用 SSL
ssl_enable=YES
# 允许匿名用户使用 SSL(可选)
allow_anon_ssl=NO
# 强制本地用户使用 SSL
force_local_data_ssl=YES
force_local_logins_ssl=YES
# SSL 证书路径
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
# 协议与加密算法
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# 被动模式(强烈推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# 其他基本配置
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
(Firewalld / iptables 同理)
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
✅ 使用支持 FTPS(Explicit TLS) 的客户端:
连接方式选择:
⚠️ 首次连接会提示证书不可信(因为是自签名证书)
sudo tail -f /var/log/vsftpd.log
sudo chmod 600 /etc/ssl/private/vsftpd.key
生产环境优先使用 SFTP(SSH),更安全、端口少、配置简单
只有在 必须使用 FTP 协议 时才用 FTPS
如果你愿意,可以告诉我:
我可以给你一份 完全匹配你环境的配置 ✅