在 CentOS 上测试 FTPServer(FTP over SSL/TLS) 是否配置成功,通常分 本地测试 和 远程测试。下面给你一套完整、实用的测试流程,适用于 vsftpd(最常见)。
systemctl status vsftpd
如果未启动:
systemctl start vsftpd
systemctl enable vsftpd
ss -lntp | grep :21
如果启用了被动模式,还需确认被动端口是否监听(如 30000-31000)。
firewall-cmd --list-all
放行 FTP 和被动端口:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
lftp(最推荐)安装:
yum install -y lftp
测试 FTPS(显式 SSL):
lftp -u ftpuser,password ftps://服务器IP
或:
lftp
> set ftp:ssl-force true
> set ssl:verify-certificate no
> open ftp://服务器IP
> login ftpuser password
✅ 成功标志:
lscurlcurl -k --ftp-ssl ftp://服务器IP/ --user ftpuser:password
✅ 能列出目录即成功
设置:
✅ 成功:
TLS/SSL connection establishedftp -p 服务器IP
⚠️ 注意:
ftp 命令 不支持 SSLtcpdump -i eth0 port 21 -A
登录时应该看到 TLS Client Hello,而不是明文 USER/PASS。
/etc/vsftpd/user_list 或 ftpuserspasv_address 配错anonymous_enable=NO
local_enable=YES
write_enable=YES
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.key
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
你可以直接贴:
vsftpd.conf/var/log/messages 或 journalctl -u vsftpd)我可以 精准定位问题,一步一步帮你调通 ✅