测试 CentOS 上的 FTPS(FTP over SSL/TLS)服务器,可以按下面步骤来,从基本连通性到加密验证逐步进行。
常见 FTPS 服务器有 vsftpd 或 ProFTPD,以 vsftpd 为例。
systemctl status vsftpd
如未启动:
systemctl start vsftpd
systemctl enable vsftpd
vim /etc/vsftpd/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/pki/tls/certs/vsftpd.pem
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
修改后重启服务:
systemctl restart vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
并在 vsftpd.conf 中:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
lftp(推荐)yum install -y lftp
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
curlcurl -k --ftp-ssl -u ftpuser:password ftp://服务器IP/
-k:忽略证书验证--ftp-ssl:启用 SSL✅ 成功后应看到“TLS connection established”
tcpdump -i eth0 port 21 -X
或在客户端连接时确认是否出现 TLS 握手(Client Hello)。
ss -lntp | grep 21
/var/log/secure/var/log/messagesopenssl s_client -connect 服务器IP:21 -starttls ftp
| 项目 | 命令 |
|---|---|
| 服务状态 | systemctl status vsftpd |
| 端口监听 | ss -lntp |
| 本机测试 | lftp ftps://IP |
| 证书验证 | openssl s_client |
| 日志 | /var/log/secure |
如果你愿意,可以把 vsftpd.conf 或 报错日志 发出来,我可以帮你精确排查。