温馨提示×

centos ftpserver为何掉线

小樊
54
2026-10-11 21:44:10
栏目: 智能运维

在 CentOS 上部署的 FTP 服务器(ftpserver)频繁掉线,常见原因和排查思路如下(以 vsftpd 为例,最常见):


一、最常见原因

1. 防火墙 / SELinux 导致连接中断

FTP 是多端口协议,被动模式(PASV)尤其容易断。

检查:

systemctl status firewalld
getenforce

解决:

  • 开放 FTP 端口(21 + PASV 端口范围)
firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
  • vsftpd 配置 PASV:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
  • 若 SELinux 开启:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

2. 被动模式(PASV)未正确配置

客户端能连上但一传文件就掉线,基本就是 PASV 问题。

现象:

  • 登录成功
  • ls / 上传下载立刻断开

解决:

  • 服务端配置 PASV 端口
  • 路由器/NAT 环境需做端口映射

3. 空闲超时(Idle Timeout)

vsftpd 默认会踢掉长时间无操作的连接。

配置:

idle_session_timeout=300
data_connection_timeout=120

4. NAT / 公网环境未配置公网 IP

云服务器、路由器后常见。

现象:

  • 登录成功
  • ls 卡住或直接断

解决:

pasv_address=你的公网IP

5. vsftpd 进程崩溃 / 资源不足

journalctl -u vsftpd
dmesg | tail

可能原因:

  • 内存不足(OOM)
  • 文件描述符耗尽

6. 客户端主动断开

  • FileZilla 默认超时
  • 网络不稳定(WiFi / 4G)

二、快速排查步骤(推荐顺序)

  1. 看日志
tail -f /var/log/vsftpd.log
journalctl -u vsftpd -f
  1. 确认模式
  • 主动 / 被动
  • 是否 NAT 环境
  1. 最小化测试
ftp localhost
  • 本地能连 → 网络/NAT 问题
  • 本地也断 → 配置问题

三、如果你能补充以下信息,我可以精准定位

  • 使用的 FTP 软件(vsftpd / proftpd)
  • 主动还是被动模式
  • 是否是云服务器
  • 掉线时的日志内容
  • 客户端(FileZilla / 命令行)

告诉我这些,我可以直接给你一份可落地的配置。

0 踩