在 Linux 上配置 FTP 服务器的 SSL(FTPS),常用方案有 vsftpd + SSL 或 ProFTPD + TLS。下面以 vsftpd(最常用) 为例说明。
# Debian / Ubuntu
sudo apt update
sudo apt install vsftpd
# CentOS / Rocky / Alma
sudo yum install vsftpd
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
例如 Let’s Encrypt:
/etc/letsencrypt/live/domain/fullchain.pem
/etc/letsencrypt/live/domain/privkey.pem
编辑配置文件:
sudo vim /etc/vsftpd.conf
# 启用 SSL
ssl_enable=YES
# 证书和私钥
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
# 强制使用 TLS(更安全)
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# 允许匿名用户使用 SSL(如不需要可关闭)
allow_anon_ssl=NO
# 本地用户必须使用 SSL
force_local_data_ssl=YES
force_local_logins_ssl=YES
# 被动模式(云服务器必备)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# 控制端口
sudo ufw allow 21/tcp
# 被动端口范围
sudo ufw allow 30000:31000/tcp
云服务器还需在 安全组 中开放这些端口。
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
| 类型 | 说明 |
|---|---|
| FTPS(显式) | 端口 21,推荐 |
| FTPS(隐式) | 端口 990(需额外配置) |
FileZilla 示例:
/etc/vsftpd.userlistlocal_enable=YESpasv_address=公网IPsudo apt install proftpd
配置 /etc/proftpd/tls.conf:
TLSRequired on
TLSCertificateFile /etc/ssl/certs/vsftpd.crt
TLSCertificateKeyFile /etc/ssl/private/vsftpd.key
如果你告诉我:
我可以给你一份精确配置文件。