测试 CentOS 上的 FTPS(FTP over SSL/TLS)服务器,可以按下面步骤来,从基本连通性到加密验证逐步进行。
一、确认 FTPS 服务已安装并运行
常见 FTPS 服务器有 vsftpd 或 ProFTPD,以 vsftpd 为例。
1. 检查服务状态
systemctl status vsftpd
如未启动:
systemctl start vsftpd
systemctl enable vsftpd
二、确认 FTPS 配置(vsftpd 示例)
1. 配置文件
vim /etc/vsftpd/vsftpd.conf
2. 关键 FTPS 配置项
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/pki/tls/certs/vsftpd.pem
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
修改后重启服务:
systemctl restart vsftpd
三、防火墙与端口检查
1. 开放 FTP 相关端口
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
2. 被动模式(推荐)
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
并在 vsftpd.conf 中:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
四、在 CentOS 本机测试 FTPS
方式一:使用 lftp(推荐)
1. 安装
yum install -y lftp
2. 测试 FTPS
lftp -u ftpuser,password ftps://服务器IP
或显式使用 TLS:
lftp
> set ftp:ssl-force true
> set ssl:verify-certificate false
> open ftp://服务器IP
> login ftpuser password
✅ 成功后可执行:
ls
put test.txt
方式二:使用 curl
curl -k --ftp-ssl -u ftpuser:password ftp://服务器IP/
-k:忽略证书验证--ftp-ssl:启用 SSL
五、从 Windows / Linux 客户端测试
1. FileZilla(图形化,推荐)
- 协议:FTP over TLS (Explicit)
- 主机:服务器 IP
- 用户名 / 密码
- 端口:21
✅ 成功后应看到“TLS connection established”
六、抓包验证是否走 TLS(高级)
tcpdump -i eth0 port 21 -X
或在客户端连接时确认是否出现 TLS 握手(Client Hello)。
七、常见问题排查
1. 无法连接
ss -lntp | grep 21
2. 登录失败
- 检查
/var/log/secure - 检查
/var/log/messages - 确认用户是否为本地用户
3. SSL 错误
openssl s_client -connect 服务器IP:21 -starttls ftp
八、快速测试清单 ✅
| 项目 | 命令 |
|---|---|
| 服务状态 | systemctl status vsftpd |
| 端口监听 | ss -lntp |
| 本机测试 | lftp ftps://IP |
| 证书验证 | openssl s_client |
| 日志 | /var/log/secure |
如果你愿意,可以把 vsftpd.conf 或 报错日志 发出来,我可以帮你精确排查。