如何开启FTPServer加密
要开启 FTPServer(FTP over SSL/TLS)加密,通常需要满足两个条件:
1️⃣ 服务器支持并开启 SSL/TLS
2️⃣ 使用 FTP 显式(Explicit)或隐式(Implicit)加密方式
下面按 常见服务器类型 给你详细说明。
一、核心概念先搞清楚
| 类型 | 说明 |
|---|---|
| FTP | 明文传输(不安全) |
| FTPS | FTP + SSL/TLS(加密) |
| Explicit FTPS | 客户端主动请求加密(推荐,端口 21) |
| Implicit FTPS | 一开始就加密(端口 990,已不推荐) |
✅ 优先使用 Explicit FTPS
二、FileZilla Server(最常见)
1️⃣ 准备 SSL 证书
可以用自签名证书(测试用):
- 打开 FileZilla Server Interface
Edit→Settings- 选择 FTP over TLS settings
- 勾选 ✅ Enable FTP over TLS support
- 点击 Generate new certificate
- 填写信息后保存
.key和.crt
2️⃣ 开启 TLS 设置
在 FTP over TLS settings 中:
- ✅ Enable FTP over TLS
- Allow explicit FTP over TLS
- 选择生成的证书
3️⃣ 用户设置
Edit→Users- 选择用户
- 确保未勾选 Force SSL for user login(或按需勾选)
4️⃣ 客户端连接方式
- 协议:FTP
- 加密:Use explicit FTP over TLS
- 端口:21
三、vsftpd(Linux 常见)
1️⃣ 安装 vsftpd
sudo apt install vsftpd
2️⃣ 生成 SSL 证书
sudo openssl req -x509 -nodes -days 365 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
3️⃣ 修改配置文件
编辑:
sudo nano /etc/vsftpd.conf
添加或修改:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
4️⃣ 重启服务
sudo systemctl restart vsftpd
5️⃣ 客户端连接
- 加密方式:TLS
- 端口:21
四、Windows IIS FTP(FTPS)
1️⃣ 安装 FTP + SSL
- 服务器管理器 → 添加角色
- 勾选 FTP Server
- 勾选 IIS 管理工具
2️⃣ 绑定 SSL 证书
- IIS 管理器
- 服务器节点 → Server Certificates
- 导入或创建证书
3️⃣ FTP SSL 设置
- FTP 站点 → FTP SSL Settings
- 选择证书
- 选择 Allow SSL / Require SSL
五、客户端推荐设置(非常重要)
| 客户端 | 设置 |
|---|---|
| FileZilla | 加密:显式 TLS |
| WinSCP | 协议:FTP,加密:TLS |
| FlashFXP | 勾选 SSL/TLS |
⚠️ 不要混淆 FTPS 和 SFTP
- FTPS = FTP + SSL
- SFTP = SSH File Transfer(完全不同)
六、常见问题排查
❌ 连接失败
✅ 检查防火墙是否放行 21 端口
✅ 被动模式(Passive)要配置正确
❌ 证书不受信任
✅ 自签名证书需客户端信任
❌ 数据连接失败
✅ 被动端口范围要开放
七、我可以继续帮你
你可以直接告诉我:
- ✅ 使用的 FTPServer 类型
- ✅ 操作系统
- ✅ 是 内网 / 公网
- ✅ 报错信息
我可以一步一步带你配好 ✅