温馨提示×

怎么测试CentOS的FTPServer

小樊
38
2026-08-04 03:48:48
栏目: 智能运维

在 CentOS 上测试 FTPServer(FTP over SSL/TLS) 是否配置成功,通常分 本地测试远程测试。下面给你一套完整、实用的测试流程,适用于 vsftpd(最常见)。


一、确认 FTPS 服务已启动

systemctl status vsftpd

如果未启动:

systemctl start vsftpd
systemctl enable vsftpd

二、确认端口监听(21 + 被动端口)

ss -lntp | grep :21

如果启用了被动模式,还需确认被动端口是否监听(如 30000-31000)。


三、确认防火墙放行

1️⃣ firewalld(CentOS 7/8)

firewall-cmd --list-all

放行 FTP 和被动端口:

firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

四、本地测试(推荐)

方法 1:使用 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

✅ 成功标志:

  • ls
  • 不报 SSL 错误

方法 2:使用 curl

curl -k --ftp-ssl ftp://服务器IP/ --user ftpuser:password

✅ 能列出目录即成功


五、远程测试(Windows / Linux 客户端)

1️⃣ FileZilla(最直观)

设置:

  • 协议:FTP over TLS (Explicit)
  • 主机:服务器 IP
  • 端口:21
  • 用户 / 密码

✅ 成功:

  • FileZilla 显示 TLS/SSL connection established
  • 能上传下载

2️⃣ Linux 客户端

ftp -p 服务器IP

⚠️ 注意:

  • ftp 命令 不支持 SSL
  • 只能测普通 FTP,不能测 FTPS

六、抓包验证是否真的走 SSL(进阶)

tcpdump -i eth0 port 21 -A

登录时应该看到 TLS Client Hello,而不是明文 USER/PASS。


七、常见错误排查

❌ 530 Login incorrect

  • 用户不存在
  • PAM 限制
  • /etc/vsftpd/user_listftpusers

❌ SSL/TLS 握手失败

  • 证书路径错误
  • 证书过期
  • 客户端未信任自签证书

❌ 能连但不能列目录

  • 被动端口未放行
  • pasv_address 配错

八、vsftpd FTPS 最小可用配置示例

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/messagesjournalctl -u vsftpd
  • 客户端报错截图

我可以 精准定位问题,一步一步帮你调通 ✅

0