温馨提示×

linux ftpserver怎么排查故障

小樊
55
2026-09-02 06:01:54
栏目: 智能运维

在 Linux 上排查 FTP 服务器(如 vsftpd、proftpd、pure-ftpd)故障,一般可以从网络、服务、配置、权限、日志、防火墙/SELinux几个方面入手。下面以最常见的 vsftpd 为例,给出一套通用排查思路。


一、确认 FTP 服务是否运行

ps -ef | grep ftp
# 或
systemctl status vsftpd

如果没有运行:

systemctl start vsftpd
systemctl enable vsftpd

查看端口监听:

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

二、检查防火墙

iptables

iptables -L -n

firewalld

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

云服务器

  • 安全组是否放行 21 端口
  • 被动模式还需放行被动端口范围

三、检查 SELinux(非常常见)

getenforce

如果是 Enforcing

setsebool -P ftpd_full_access on

查看 FTP 相关布尔值:

getsebool -a | grep ftp

如家目录无法访问:

chcon -R -t public_content_t /home/ftpuser

四、查看 FTP 日志(最重要)

vsftpd 日志位置

/var/log/vsftpd.log
/var/log/messages
/var/log/secure

查看实时日志:

tail -f /var/log/vsftpd.log

常见错误:

  • Login failed → 用户/密码/权限
  • Permission denied → 目录权限
  • Connection refused → 服务未起或端口问题

五、检查 FTP 配置文件

常见文件:

/etc/vsftpd/vsftpd.conf

重点检查:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_min_port=30000
pasv_max_port=31000

改完配置重启:

systemctl restart vsftpd

六、用户与权限问题

用户是否存在

id ftpuser

家目录权限(不能 777)

ls -ld /home/ftpuser
chmod 755 /home/ftpuser

是否被 shell 限制

grep ftpuser /etc/passwd

应为:

/sbin/nologin

七、主动/被动模式问题

客户端连不上

  • 主动模式:服务器连客户端(常被防火墙拦)
  • 被动模式:客户端连服务器(需开放端口)

建议:

  • 服务端开启被动端口
  • 防火墙放行对应端口

八、用命令行测试

ftp localhost

或:

lftp ftp://user:pass@ip

九、常见故障速查表

现象 可能原因
连不上 服务未起 / 防火墙
能连不能登 用户名密码 / SELinux
能登不能传 write_enable / 目录权限
登录后跳根目录 chroot 配置
被动模式卡住 被动端口未放行

如果你能告诉我:

  • 用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 具体报错信息
  • 主动还是被动模式

我可以直接帮你定位问题。

0