要测试 Debian 上的 FTP 服务器(如 vsftpd、proftpd 等),可以从本地测试、远程测试、功能测试、安全测试几个方面来做。下面以最常见的 vsftpd 为例,给出完整测试流程。
sudo systemctl status vsftpd
正常应看到 active (running)。
如未启动:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
ss -antp | grep ftp
或
netstat -antp | grep ftp
常见端口:
21:FTP 控制端口20:主动模式数据端口30000-31000:被动模式端口(如已配置)ftp localhost
示例:
Name: ftpuser
Password: ******
ftp> ls
✅ 能登录并列出目录说明基本正常。
退出:
ftp> bye
sudo apt install lftp
lftp localhost
测试:
ls
pwd
telnet 服务器IP 21
看到类似:
220 (vsFTPd 3.0.3)
说明端口通。
ftp 服务器IP
或使用图形工具:
编辑配置:
sudo vim /etc/vsftpd.conf
确认:
anonymous_enable=YES
重启:
sudo systemctl restart vsftpd
测试:
ftp localhost
Name: anonymous
Password: (直接回车)
local_enable=YES
write_enable=YES
测试上传:
put test.txt
配置示例:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
sudo ufw allow 30000:31000/tcp
用 FileZilla 测试被动模式是否成功。
sudo tail -f /var/log/vsftpd.log
或
sudo journalctl -u vsftpd -f
sudo ufw status
确保:
21/tcpDebian 默认无 SELinux,可忽略。
| 问题 | 原因 |
|---|---|
| 能连但不能列目录 | 被动模式端口未放行 |
| 530 Login incorrect | 用户名/密码或 PAM 配置 |
| 425 Failed to establish connection | 主动模式被防火墙拦截 |
| 200 PORT command successful | 主动模式 |
✅ 服务运行
✅ 端口监听
✅ 本地登录
✅ 远程登录
✅ 上传/下载
✅ 被动模式
✅ 匿名访问(如需要)
如果你愿意,可以告诉我:
我可以给你一份完全针对性的测试方案。