在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 时,如果觉得 FTP 传输速度慢,可以从系统、网络、vsftpd 配置、客户端几个方面来优化。下面给你一套比较实用、可落地的提速方法。
在优化前先排除:
iperf3 测带宽scp / sftp 对比速度(如果也慢,就不是 vsftpd 的问题)编辑配置文件:
sudo nano /etc/vsftpd.conf
async_abor_enable=YES
reverse_lookup_enable=NO
(老版本可能是 pasv_promiscuous=YES 配合)
避免随机端口导致协商慢:
pasv_min_port=30000
pasv_max_port=31000
并确保防火墙放行:
ufw allow 30000:31000/tcp
max_clients=100
max_per_ip=10
ls_recurse_enable=NO
dirlist_enable=YES
虚拟用户 + PAM 会有额外开销。
编辑:
sudo nano /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 = 1
生效:
sudo sysctl -p
客户端:
binary
vsftpd 默认已是二进制,但某些客户端会切 ASCII。
HDD + FTP = 天然慢
推荐:
ext4xfs挂载选项:
noatime,nodiratime
lftp -e "set net:max-retries 2; pget -n 10 bigfile.iso"
如果不是必须用 FTP:
通常比 FTP 更快、更安全、好维护。
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
async_abor_enable=YES
reverse_lookup_enable=NO
pasv_min_port=30000
pasv_max_port=31000
max_clients=100
max_per_ip=10
ls_recurse_enable=NO
可以告诉我:
我可以帮你做针对性调优。