温馨提示×

ubuntu vsftp为何慢

小樊
34
2026-09-22 10:18:34
栏目: 智能运维

在 Ubuntu 上用 vsftpd(Very Secure FTP Daemon) 时感觉“慢”,通常不是 vsftpd 本身的问题,而是配置、网络或客户端方式导致的。下面按常见原因 → 排查方法 → 解决建议来说明。


一、最常见原因

1. DNS 反向解析导致连接慢(非常常见)

vsftpd 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或很慢,登录会卡几秒到十几秒。

现象

  • 连接成功但“卡一下”才让登录
  • ftp 命令登录慢,FileZilla 也慢

解决 编辑 /etc/vsftpd.conf:

reverse_lookup_enable=NO

然后重启:

sudo systemctl restart vsftpd

这是 Ubuntu + vsftpd 最经典的“慢”原因。


2. 被动模式(PASV)配置不当

如果 PASV 端口范围没开,或防火墙/NAT 没放行,会导致:

  • 能登录
  • 列目录慢 / 传输慢 / 卡死

检查配置

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=你的公网IP   # 如果是云服务器/NAT

防火墙

sudo ufw allow 40000:50000/tcp

云服务器还要在安全组放行这些端口。


3. 使用 FTP 而不是 SFTP(协议本身慢)

  • FTP 是 明文 + 双端口
  • 每次操作都要新连接
  • 在高延迟网络下明显慢

建议

  • 如果是内网管理 → 用 SFTP(OpenSSH)
  • 必须 FTP → 用被动模式 + 限制端口

4. 磁盘 IO 或权限问题

  • 磁盘满(df -h)
  • 目录文件极多(几万文件)
  • 权限递归扫描慢

检查

df -h
ls -l /srv/ftp

5. 客户端方式问题

  • FileZilla 默认“同时多连接”反而更慢
  • 浏览器 FTP 已废弃,极不稳定

建议

  • FileZilla:关闭“同时传输”
  • 用 lftp 或 curlftpfs

二、快速排查清单(照着做)

# 1. 看是否有 DNS 卡顿
sudo tcpdump -n port 53

# 2. 看 vsftpd 日志
sudo tail -f /var/log/vsftpd.log

# 3. 测试登录速度
time ftp localhost

三、推荐的最小高性能配置(示例)

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

reverse_lookup_enable=NO

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=公网IP

四、结论一句话

Ubuntu 上 vsftpd 慢,90% 是 DNS 反向解析或 PASV 端口没配好。

如果你愿意,可以:

  • 贴出 vsftpd.conf
  • 说明是 内网 / 公网 / 云服务器
  • 用什么客户端

我可以直接帮你改到“秒连”。

0 踩