温馨提示×

linux vsftp为什么慢

小樊
44
2026-10-21 08:16:05
栏目: 智能运维

在 Linux 上使用 vsftpd(Very Secure FTP Daemon) 时,出现“慢”的情况通常由以下几类原因导致。你可以对照排查:


一、DNS 反向解析导致连接慢(最常见)

vsftpd 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 服务器不可用或响应慢,登录会卡很久。

现象:

  • 连接成功但登录慢
  • USER 命令之后卡住

解决方法:

# vsftpd.conf
reverse_lookup_enable=NO

然后重启:

systemctl restart vsftpd

二、被动模式(PASV)配置不当

被动模式端口未正确开放,或 PASV 地址错误,会导致:

  • 登录快,但列目录/传输极慢
  • 客户端卡在 “Retrieving directory listing”

检查项:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP

并确保防火墙放行:

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

三、防火墙 / SELinux 影响

  • iptables / firewalld 规则不正确
  • SELinux 阻止 vsftpd 访问文件

排查:

getsebool -a | grep ftp
setsebool -P ftpd_full_access on

四、磁盘 IO 或文件系统问题

  • 硬盘慢(HDD、云盘限速)
  • 文件数量极多(万级以上)
  • 目录权限扫描慢

验证:

iostat -x 1
top

五、vsftpd 配置不合理

常见影响性能的配置:

# 不必要的功能
ls_recurse_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO

# 限制连接数
max_clients=50
max_per_ip=5

六、网络问题

  • 跨运营商 / 跨国链路
  • MTU 不匹配
  • 丢包严重

测试:

ping ftp_server
mtr ftp_server

七、客户端问题

  • 使用了加密 FTPS 但 CPU 弱
  • 客户端默认主动模式被拦

快速自检清单 ✅

  1. reverse_lookup_enable=NO
  2. PASV 端口已开放
  3. SELinux / 防火墙正常
  4. DNS 正常或用内网 IP
  5. 磁盘 IO 正常

如果你愿意,可以贴出:

  • vsftpd.conf
  • 操作系统版本
  • 是登录慢还是传输慢

我可以帮你精确定位原因。

0 踩