温馨提示×

怎样优化ubuntu ftpserver速度

小樊
43
2026-10-02 14:14:00
栏目: 智能运维

优化 Ubuntu 上的 FTP 服务器速度,需要先明确你用的是哪种 FTP 服务端(最常见的是 vsftpd、ProFTPD 或 Pure-FTPd)。下面以最常用、默认的 vsftpd 为主,兼顾通用优化思路。


一、基础系统与网络优化(通用)

1. 使用有线网络 & 千兆网卡

  • 无线 / 百兆网口是最大瓶颈
  • 检查速率:
ethtool eth0

2. 调整内核网络参数

编辑 /etc/sysctl.conf:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_window_scaling = 1

应用:

sysctl -p

二、vsftpd 专项优化(重点)

1. 关闭 DNS 反向解析(非常关键)

编辑 /etc/vsftpd.conf:

reverse_lookup_enable=NO

否则每次连接都做 DNS 查询,明显变慢。


2. 使用被动模式(PASV)并指定端口范围

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

ufw allow 30000:31000/tcp

3. 禁用不必要的功能

ascii_upload_enable=NO
ascii_download_enable=NO
ls_recurse_enable=NO

ASCII 模式会逐字节传输,极慢。


4. 提高并发与连接效率

max_clients=200
max_per_ip=10
connect_from_port_20=YES

5. 使用本地用户而非虚拟用户(如非必须)

虚拟用户(PAM / DB)会有额外开销。


三、磁盘 I/O 优化

1. 使用高性能文件系统

  • ext4(默认)
  • 避免 NFS / 网络盘做 FTP 根目录

2. 磁盘调度策略

cat /sys/block/sda/queue/scheduler

推荐:

echo mq-deadline > /sys/block/sda/queue/scheduler

四、传输协议层面的选择(重要)

✅ 不加密 > FTPS > SFTP(速度)

  • FTP(明文)最快
  • FTPS(SSL):CPU 消耗大
  • SFTP(SSH):最慢,不适合大文件

如非安全强制要求,优先用 FTP。


五、客户端侧也影响速度

  • 使用支持多线程/分段下载的客户端(FileZilla、lftp)
  • lftp 示例:
lftp -e "pget -n 10 file.iso; exit" ftp://user:pass@host

六、快速检查瓶颈在哪

# CPU
top

# 磁盘
iotop

# 网络
iftop
nload

七、示例:高效 vsftpd 配置(精简版)

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
reverse_lookup_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
max_clients=200

如果你愿意,可以告诉我:

  • 用的哪种 FTP 服务(vsftpd / proftpd)
  • 内网还是公网
  • 文件大小 & 并发量

我可以给你针对性配置模板。

0 踩