温馨提示×

linux ftpserver无法连接咋办

小樊
40
2026-09-14 09:30:20
栏目: 智能运维

Linux 上 FTP Server 连不上,通常可以从 网络 → 服务 → 配置 → 防火墙/SELinux → 客户端方式 一步步排查。下面给你一个实用排查清单。


1. 确认 FTP 服务是否真的在运行

systemctl status vsftpd
# 或 proftpd / pure-ftpd,看你装的是哪个

没运行就启动:

systemctl start vsftpd
systemctl enable vsftpd

2. 确认监听端口

ss -lntp | grep -E '21|ftp'
  • 正常应看到 :21 监听
  • 若没监听,说明配置或程序有问题

3. 本机先测试(排除网络问题)

ftp localhost

telnet localhost 21
  • 能连:问题在外部网络/防火墙
  • 不能连:FTP 服务本身配置问题

4. 防火墙(最常见原因)

firewalld

firewall-cmd --list-all

开放 FTP:

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

iptables

iptables -L -n

确保 21 端口放行。


5. SELinux(很容易坑人)

查看状态:

getenforce

如果是 Enforcing,试试:

setsebool -P ftp_home_dir on
setsebool -P ftpd_full_access on

或临时验证:

setenforce 0

能连了就说明 SELinux 限制的。


6. FTP 模式问题(被动模式 PASV)

很多客户端连不上是因为 被动模式端口没开

vsftpd 示例

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

然后在防火墙放行:

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

7. 用户 / 权限问题

  • 用户是否存在
  • 是否禁止登录(/etc/passwd shell)
  • 家目录权限是否正确

vsftpd 常见限制:

local_enable=YES
write_enable=YES

8. 云服务器特别注意

  • 安全组必须放通 21 + 被动端口范围
  • 仅靠系统防火墙不够

9. 看日志(最直接)

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

连接失败时日志通常会直接说明原因。


快速总结一句话

先本机连 → 再看防火墙/SELinux → 最后查 PASV 被动端口

如果你愿意,可以把:

  • FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 错误提示
  • 是否是云服务器

发出来,我可以直接帮你定位。

0