在 Ubuntu 上测试 FTP 服务器(无论是 vsftpd、proftpd 还是 pure-ftpd),可以从本机测试和远程测试两个层面来做。下面给你一套完整、常用、实战型的测试方法。
systemctl status vsftpd
(如果是 proftpd)
systemctl status proftpd
✅ 正常状态应为 active (running)
ss -lntp | grep :21
或
netstat -lntp | grep :21
✅ 看到 0.0.0.0:21 或 :::21 说明监听正常
ftp 命令(最基础)sudo apt install ftp
ftp localhost
操作示例:
Name: 用户名
Password: 密码
ftp> ls
ftp> put test.txt
ftp> get test.txt
ftp> bye
✅ 能登录并列出目录说明 FTP 基本正常
lftp(强烈推荐)sudo apt install lftp
lftp ftp://localhost
lftp -u username localhost
常用命令:
ls
put file
get file
mirror dir
✅ lftp 支持被动模式、断点续传,比 ftp 稳定
curl(快速测试)curl -I ftp://localhost
上传测试:
curl -T test.txt ftp://user:password@localhost/
FTP 被动模式是最容易出问题的地方
以 vsftpd 为例:
grep pasv /etc/vsftpd.conf
常见配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
ufw allow 21/tcp
ufw allow 30000:31000/tcp
lftp -u user localhost
set ftp:passive-mode on
ls
lftp ftp://user@服务器IP
✅ 能连上但列不出目录 → 多半是 被动模式 / 防火墙问题
tail -f /var/log/vsftpd.log
tail -f /var/log/proftpd/proftpd.log
常见问题:
530 Login incorrect425 Unable to build data connection500 OOPS| 检查项 | 命令 |
|---|---|
| 服务是否运行 | systemctl status vsftpd |
| 端口是否监听 | ss -lntp |
| 防火墙 | ufw status |
| 被动端口 | pasv_min_port |
| 登录测试 | lftp |
| 日志 | /var/log/ |
你可以直接告诉我:
我可以一步一步帮你定位 ✅