在 Linux 上搭建/优化 FTP Server 的传输速度,通常从 协议选择、网络、磁盘、配置参数、并发与防火墙 几方面入手。下面按“最有用 → 进阶”给你一套实用方案。
常见:
下面以 vsftpd 为主,其他类似。
主动模式(PORT)在很多网络环境下极慢甚至失败。
vsftpd 配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并放通防火墙:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
FTP 默认会做反向 DNS,慢到怀疑人生。
reverse_lookup_enable=NO
(老版本可能是 use_reverse_dns=NO)
确保客户端用 binary 模式(默认一般是对的):
ftp> binary
# 临时
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
sysctl -w net.ipv4.tcp_window_scaling=1
永久:
/etc/sysctl.conf
ethtool -L eth0 combined 8
(云服务器一般已优化)
测试磁盘:
dd if=/dev/zero of=test bs=1M count=1000
max_clients=200
max_per_ip=20
local_max_rate=0
anon_max_rate=0
限速说明:
0 = 不限速local_max_rate=104857600(100MB/s)ls_recurse_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
sendfilevsftpd 默认支持,提升大文件效率。
lftp -e "set net:max-rate 0; mirror -c --parallel=10 /remote /local"
如果:
考虑:
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
max_clients=200
max_per_ip=20
local_max_rate=0
tcp_wrappers=NO
我可以直接给你针对性配置。