温馨提示×

linux ftpserver为何无法访问

小樊
32
2026-08-01 10:09:35
栏目: 智能运维

Linux 上的 FTP 服务器无法访问 原因很多,通常可以从 服务、端口、防火墙、SELinux、用户权限、被动模式 等几个方面排查。下面按最常见原因给你一份 系统排查清单


一、FTP 服务是否真的在运行

systemctl status vsftpd
# 或 proftpd
systemctl status proftpd

如果没运行:

systemctl start vsftpd
systemctl enable vsftpd

二、监听端口是否正确

FTP 默认端口是 21

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

✅ 应看到 0.0.0.0:21:::21

❌ 没监听 → 配置文件问题


三、防火墙是否拦截(最常见原因)

firewalld

firewall-cmd --list-all

放行 FTP:

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

iptables

iptables -L -n

如有限制,可临时关闭测试:

systemctl stop firewalld

四、SELinux 是否阻止(非常常见)

查看状态:

getenforce

如果是 Enforcing,尝试:

setenforce 0

如果关闭后 FTP 能访问,说明就是 SELinux 问题。

✅ 正确做法(允许 FTP):

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

五、FTP 模式问题(主动 / 被动)

客户端提示:

  • 能连上但列不出目录
  • Entering Passive Mode 后卡住

vsftpd 被动模式示例配置

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

六、用户权限和目录问题

1️⃣ 用户是否允许登录

cat /etc/vsftpd/user_list
cat /etc/vsftpd/ftpusers

被加入黑名单会被拒绝。

2️⃣ 家目录权限

ls -ld /home/username

推荐权限:

chmod 755 /home/username

七、配置文件常见错误(vsftpd)

检查:

cat /etc/vsftpd/vsftpd.conf

常见正确配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

八、测试 FTP 是否可用

本地测试

ftp localhost

远程测试

telnet 服务器IP 21

✅ 看到 220 说明端口通
❌ 连接失败 → 网络 / 防火墙问题


九、日志查看(非常重要)

tail -f /var/log/vsftpd.log
# 或
journalctl -u vsftpd

十、快速排查流程图(总结)

客户端无法访问
   ↓
21 端口是否监听?
   ↓
防火墙是否放行?
   ↓
SELinux 是否阻止?
   ↓
FTP 模式是否正确?
   ↓
用户/目录权限是否正常?

如果你愿意,可以贴出:

  • FTP 软件(vsftpd / proftpd)
  • 报错信息(客户端提示)
  • vsftpd.conf
  • 系统版本

我可以 直接帮你精确定位问题

0