Ubuntu与vsftp的文件传输速度
小樊
36
2025-12-26 04:06:44
Ubuntu 与 vsftpd 的文件传输速度
基准速度参考
- 在千兆局域网、服务端与客户机均为 Ubuntu、未做专门优化的条件下,使用 vsftpd 实测可达约60–70 MB/s(大文件顺序传输、同一台物理机或同交换机环境)。
- 客户端工具对速度影响很大:同为 vsftpd,FlashFXP 可接近60–70 MB/s,而 FileZilla 常见仅约13 MB/s,即使服务器未优化也会拉开差距。
影响速度的关键因素
- 网络与拓扑:链路速率(如1 Gbps/10 Gbps)、交换机/路由跳数、同/跨网段、是否虚拟化(vNIC、vSwitch 开销)。
- 加密与协议开销:FTP 明文最快;FTPS/TLS有加密开销;SFTP(基于 SSH)在 CPU 较强时也可接近线速,但取决于加密套件与实现。
- 传输模式与端口:被动模式(PASV)更利于穿越防火墙/NAT;主动模式(PORT)在某些网络下可能受限。
- 并发与限速:服务器的并发连接数、每连接限速(如 vsftpd 的 local_max_rate/anon_max_rate)、客户端线程数都会影响总吞吐与单连接速度。
- 客户端实现与缓冲:不同客户端(如 FlashFXP vs FileZilla)的缓冲、线程与协议细节差异,会带来显著速度差异。
快速自测步骤
- 准备:在同一局域网准备一台 Ubuntu 作为 vsftpd 服务器与一台客户端;使用大文件(>1 GB)测试顺序读写;尽量使用有线千兆直连或同交换机。
- 安装与最小配置(/etc/vsftpd.conf 片段):
- 启用本地用户与写入:local_enable=YES、write_enable=YES
- 关闭匿名:anonymous_enable=NO
- 被动模式端口范围:pasv_enable=YES、pasv_min_port=50000、pasv_max_port=60000
- 可选限速:例如 local_max_rate=0(不限制,便于测上限)
- 防火墙放行:
- 放行控制与数据端口:sudo ufw allow 20/tcp、21/tcp、990/tcp(FTPS)、以及 50000:60000/tcp(PASV 数据端口)
- 重启服务:sudo systemctl restart vsftpd
- 测试方法:
- 客户端使用二进制模式上传/下载大文件,记录MB/s;分别尝试不同客户端(如 FlashFXP、FileZilla)与不同并发线程数,观察差异。
提升吞吐的实用配置建议
- 协议与端口:
- 追求极致吞吐且环境可控时优先用FTP 明文;有合规要求再启用 FTPS(注意加密开销)。
- 在复杂网络下优先PASV 模式并固定端口段,便于防火墙放行与连接稳定。
- 并发与限速:
- 适度提高并发连接数(如 max_clients、max_per_ip),避免过载;必要时对单用户限速(local_max_rate/anon_max_rate)以稳态跑满带宽。
- 系统层面:
- 关闭节能/降频策略,保证CPU/磁盘/网络处于高性能状态;检查磁盘 I/O 是否成为瓶颈(如用 iotop)。
- 客户端侧:
- 选择支持更大缓冲/多线程的客户端,并在设置中开启二进制传输与合适的缓冲区大小;在受控网络下优先使用主动/被动模式中表现更好的那一种。