温馨提示×

如何测试linux ftpserver

小樊
33
2026-07-17 21:19:20
栏目: 智能运维

测试 Linux FTP 服务器一般从 连通性、功能、权限、安全性 几个方面进行。下面给你一套常用且实用的测试流程,涵盖命令行和工具方式。


一、确认 FTP 服务是否运行

1. 查看 FTP 服务状态

常见 FTP 服务:vsftpdproftpd

systemctl status vsftpd
# 或
systemctl status proftpd

如未启动:

systemctl start vsftpd
systemctl enable vsftpd

2. 检查监听端口

FTP 默认端口是 21

ss -lntp | grep 21
# 或
netstat -lntp | grep 21

二、本地测试 FTP(最基础)

1. 使用 ftp 命令

ftp localhost

示例:

Name: testuser
Password: ******
ftp> ls
ftp> put test.txt
ftp> get test.txt
ftp> bye

✅ 能登录、列目录、上传下载 → 基本功能正常


2. 使用 lftp(推荐)

功能更强,支持被动模式

lftp ftp://user@localhost

测试:

ls
put test.txt
get test.txt

三、测试主动模式 / 被动模式

1. 主动模式

ftp -A localhost

或:

ftp localhost
ftp> passive
Passive mode: off

2. 被动模式(最常见)

ftp localhost
ftp> passive
Passive mode: on

⚠️ 如果被动模式失败,通常是:

  • 防火墙未放行被动端口
  • vsftpd 未配置被动端口范围

四、防火墙 & SELinux 测试

1. 防火墙(firewalld)

firewall-cmd --list-all

放行 FTP:

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

如用被动模式,还需放行端口范围(如 30000-31000)


2. SELinux

查看状态:

getenforce

临时测试:

setenforce 0

如 FTP 正常,说明是 SELinux 问题,可配置:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

五、用户权限测试

1. 本地用户

ftp localhost

测试:

  • 是否能访问 home 目录
  • 是否能上传/删除

2. 匿名用户(如启用)

ftp localhost
Name: anonymous
Password: (空或邮箱)

测试:

  • 是否能下载
  • 是否不能上传(安全)

六、远程测试 FTP

从另一台机器:

ftp 服务器IP

或使用:

lftp ftp://user@服务器IP

⚠️ 注意:

  • 云服务器需放行 21 及被动端口
  • 被动模式在 NAT 环境下容易失败

七、日志排查(非常重要)

vsftpd 日志

tail -f /var/log/vsftpd.log

系统日志

journalctl -u vsftpd -f

八、常见问题速查表

问题 原因
能连但不能列目录 被动模式端口未放行
530 Login incorrect 用户名/密码或 PAM 配置
550 Permission denied 目录权限 / SELinux
连接超时 防火墙 / 云安全组

九、推荐的完整测试清单 ✅

  • [ ] 本地 ftp 登录成功
  • [ ] 上传 / 下载正常
  • [ ] 主动 & 被动模式正常
  • [ ] 防火墙放行
  • [ ] SELinux 不影响
  • [ ] 匿名用户行为符合预期
  • [ ] 日志无报错

如果你愿意,可以告诉我:

  • 你用的是 vsftpd / proftpd / pure-ftpd
  • 是否 云服务器
  • 报错信息

我可以给你针对性的配置和排错方案

0