优化 Ubuntu 上的 FTP 服务器速度,需要先明确你用的是哪种 FTP 服务端(最常见的是 vsftpd、ProFTPD 或 Pure-FTPd)。下面以最常用、默认的 vsftpd 为主,兼顾通用优化思路。
ethtool eth0
编辑 /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
编辑 /etc/vsftpd.conf:
reverse_lookup_enable=NO
否则每次连接都做 DNS 查询,明显变慢。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
ufw allow 30000:31000/tcp
ascii_upload_enable=NO
ascii_download_enable=NO
ls_recurse_enable=NO
ASCII 模式会逐字节传输,极慢。
max_clients=200
max_per_ip=10
connect_from_port_20=YES
虚拟用户(PAM / DB)会有额外开销。
cat /sys/block/sda/queue/scheduler
推荐:
echo mq-deadline > /sys/block/sda/queue/scheduler
如非安全强制要求,优先用 FTP。
lftp -e "pget -n 10 file.iso; exit" ftp://user:pass@host
# CPU
top
# 磁盘
iotop
# 网络
iftop
nload
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
如果你愿意,可以告诉我:
我可以给你针对性配置模板。