在 Ubuntu 上测试 FTP 服务器(通常是 vsftpd 或 proftpd),可以从本机测试和远程测试两个层面来做。下面以最常见的 vsftpd 为例,给你一套完整、实用的测试流程。
sudo systemctl status vsftpd
正常应看到:
Active: active (running)
如果未启动:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo apt update
sudo apt install ftp
ftp localhost
示例:
Name: your_username
Password: ******
成功后会看到:
ftp>
常用命令:
ls
pwd
put test.txt
get test.txt
bye
✅ 能登录并列出目录,说明 FTP 服务基本正常。
很多客户端默认用被动模式,必须测试。
lftp(推荐)sudo apt install lftp
测试:
lftp ftp://用户名@localhost
或者:
lftp
lftp :~> open localhost
lftp localhost:~> login 用户名 密码
lftp localhost:~> ls
如果 ls 卡住,通常是 被动模式端口未开放。
sudo ufw status
如果是 active,需要放行:
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
并在 /etc/vsftpd.conf 中配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
重启:
sudo systemctl restart vsftpd
ip a
假设是 192.168.1.100
ftp 192.168.1.100
或
lftp ftp://user@192.168.1.100
编辑:
sudo nano /etc/vsftpd.conf
确认:
anonymous_enable=YES
anon_root=/srv/ftp
创建目录:
sudo mkdir -p /srv/ftp
sudo chown ftp:nogroup /srv/ftp
测试:
ftp localhost
Name: anonymous
Password: (直接回车)
sudo tail -f /var/log/vsftpd.log
如果没有该文件,可临时启用:
xferlog_enable=YES
log_ftp_protocol=YES
| 检查项 | 命令 |
|---|---|
| 服务是否运行 | systemctl status vsftpd |
| 端口是否监听 | `ss -lntp |
| 防火墙 | ufw status |
| 被动端口 | pasv_min_port / pasv_max_port |
| 登录测试 | ftp / lftp |
如果你愿意,可以告诉我:
我可以给你一份完全贴合你环境的测试方案。