温馨提示×

linux vsftp为何连不上

小樊
36
2026-10-18 11:51:08
栏目: 智能运维

vsftpd(Very Secure FTP Daemon)在 Linux 上“连不上”是很常见的问题,原因通常集中在服务状态、防火墙、SELinux、配置、被动模式、账号权限这几类。下面按排查顺序给你一个清单:


一、先确认 vsftpd 是否真的在运行

systemctl status vsftpd

或

ps aux | grep vsftpd

如果没运行:

systemctl start vsftpd
systemctl enable vsftpd

二、检查监听端口

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

常见情况:

  • 21 端口没监听 → 服务没起或配置错误
  • 只监听 127.0.0.1 → 只能本机连

三、防火墙(最常见原因)

1. firewalld

firewall-cmd --list-all

开放 FTP:

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

2. iptables

iptables -L -n

确保 21 端口放行。


四、被动模式(PASV)问题(非常常见)

很多“能连但不能列目录”的情况就是被动模式。

vsftpd.conf 示例(被动模式):

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙还要放这些端口:

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

五、SELinux(常被忽略)

getenforce

如果是 Enforcing:

setsebool -P ftpd_full_access on

或临时验证:

setenforce 0

六、配置文件常见坑

1. 是否允许本地用户登录

local_enable=YES
write_enable=YES

2. 是否禁止匿名但没建用户

anonymous_enable=NO

3. 用户被锁根目录

chroot_local_user=YES
allow_writeable_chroot=YES

七、用户与权限问题

  • 用户是否存在:id ftpuser
  • 家目录权限不能太开放(不能 777)
chmod 755 /home/ftpuser

八、客户端报错对照

现象 可能原因
连接超时 防火墙 / 服务没起
拒绝连接 端口未监听
能登录不能列目录 被动模式
530 Login incorrect 密码 / PAM
500 OOPS chroot 权限问题

九、快速自检命令

ftp localhost

本机能连 → 问题在网络/防火墙
本机也不能连 → 配置或服务问题


如果你愿意,可以把下面信息发我,我可以直接帮你定位:

  1. Linux 发行版(CentOS / Ubuntu?)
  2. vsftpd.conf 关键配置
  3. 客户端报错原文
  4. systemctl status vsftpd 输出

我可以一步一步帮你修到能连。

0 踩