提升 Debian 上 FTP 服务器(常见为 vsftpd、proftpd 或 pure-ftpd)的传输速度,需要从网络、协议配置、磁盘 IO、并发与被动模式几个方面入手。下面以最常见的 vsftpd为主说明,同时补充通用优化建议。
被动模式在 NAT / 防火墙环境下更稳定,速度更可控。
vsftpd 示例:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=你的公网IP
防火墙放行:
ufw allow 40000:50000/tcp
编辑 /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
net.ipv4.tcp_timestamps = 0
生效:
sysctl -p
anonymous_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
ls_recurse_enable=NO
max_clients=200
max_per_ip=10
listen=YES
tcp_wrappers=NO
如果你用虚拟用户,考虑:
挂载示例:
/dev/sdb1 /ftp xfs defaults,noatime 0 0
避免 ASCII 模式(极慢)
推荐:
lftp(pget 多线程)aria2c + FTP| 问题 | 解决 |
|---|---|
| 防火墙 DPI | 关闭 FTP ALG |
| 云服务器限速 | 检查带宽上限 |
| DNS 反查慢 | reverse_lookup_enable=NO |
| 日志过多 | 降低 log 级别 |
# 网络带宽
iperf3 -s / -c
# 磁盘速度
dd if=/dev/zero of=/ftp/test bs=1M count=1000
# FTP 测试
ftp localhost
如果你愿意,可以告诉我:
我可以给你一份针对性配置模板。