在 Debian 上搭建/优化 FTP 服务(如 vsftpd、ProFTPD、pure-ftpd)时,“提速”一般从网络、磁盘、FTP 服务配置、传输模式、客户端几个层面入手。下面以最常见的 vsftpd 为例,兼顾通用建议。
先确认瓶颈在哪:
# 看 CPU / 内存 / 负载
top
# 看磁盘 IO
iostat -x 1
# 看网络带宽
iftop
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙只放行这些端口,减少随机端口扫描开销。
anonymous_enable=NO
xferlog_enable=YES
ls_recurse_enable=NO
max_clients=500
max_per_ip=10
listen=YES
tcp_wrappers=NO
如果是高并发,可考虑:
seccomp_sandbox=NO
connect_from_port_20=YES
idle_session_timeout=300
data_connection_timeout=300
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 = 1
net.ipv4.tcp_sack = 1
应用:
sysctl -p
ulimit -n 65535
并修改:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
mount -o remount,noatime /data
FTP 对大量小文件极不友好:
tar czf data.tar.gz /path
lftp 示例(极快):
lftp -e "mirror -P 10 /remote /local" ftp://user:pass@host
如果不受协议限制:
Debian + vsftpd + passive + sysctl 优化 + lftp 客户端
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。