在 CentOS 上测试 FTP 服务器,常见做法有 命令行测试、浏览器测试、专用工具测试。下面按场景给你一套完整、实用的测试方法。
先确认 FTP 服务(vsftpd / proftpd 等)是否启动。
systemctl status vsftpd
如果没启动:
systemctl start vsftpd
systemctl enable vsftpd
安装客户端(如果没装):
yum install -y ftp
测试连接:
ftp localhost
示例:
Name: ftpuser
Password: ******
ftp> ls
ftp> bye
✅ 能登录并看到目录,说明 FTP 服务正常。
yum install -y lftp
测试:
lftp ftp://用户名:密码@localhost
或交互模式:
lftp localhost
常用命令:
ls
put test.txt
get test.txt
bye
✅ lftp 支持被动模式、SSL,更适合测试。
很多客户端问题都出在被动模式。
lftp localhost
set ftp:passive-mode on
ls
如果失败,检查:
pasv_* 配置ss -lntp | grep :21
telnet FTP服务器IP 21
看到类似:
220 (vsFTPd 3.0.2)
✅ 端口通
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
如果是被动模式,还需要开放被动端口(如 30000-31000)。
查看状态:
getenforce
临时关闭测试:
setenforce 0
如果关闭后正常,说明是 SELinux 问题,建议用:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
ftp localhost
用户名:
anonymous
密码:任意邮箱
ftp://IP
| 问题 | 原因 |
|---|---|
| 能连但不能列目录 | 被动模式 / 防火墙 |
| 530 Login incorrect | 用户 / 密码 / PAM |
| 550 Permission denied | 权限 / SELinux |
| 连接超时 | 防火墙 / 端口未开 |
你可以直接贴出:
我可以 直接帮你定位问题并给出最小修改方案。