FileZilla通过SFTP上传至Debian OpenSSH服务器速度过慢的优化咨询
FileZilla通过SFTP上传至Debian OpenSSH服务器速度过慢的优化咨询
Hey,我之前帮朋友排查过几乎一模一样的SFTP上传慢问题,结合OpenSSH和FileZilla的特性,给你几个实际可行的优化方向,你可以挨个试:
一、调整Debian上OpenSSH服务器的配置
高延迟环境下,OpenSSH默认的TCP参数很容易成为瓶颈,你可以修改/etc/ssh/sshd_config文件:
- 先禁用DNS反向解析,避免连接时的不必要延迟:
UseDNS no - 增大TCP窗口大小,适配你的带宽延迟乘积(你的情况大概需要300KB以上的缓冲区):
TCPWindowSize 327680 - 保持连接活跃,防止超时断开或者传输停滞:
ClientAliveInterval 30 ClientAliveCountMax 3
修改完之后,重启SSH服务生效:
sudo systemctl restart sshd
二、优化FileZilla的传输设置
有时候客户端的默认设置也会拖慢速度:
- 打开FileZilla的「编辑」->「设置」->「传输设置」->「SFTP」,勾选「允许SFTP的TCP窗口大小调整」,如果有手动设置项,填和服务器端一致的
327680。 - 关闭不必要的压缩:如果传的是视频、压缩包这类本身已经压缩过的文件,FileZilla的SFTP压缩会浪费CPU资源,反而拖慢速度。在「传输设置」里把压缩模式改成「关闭」或者「自动」(自动会判断文件是否适合压缩)。
- 试试减少并发传输数:你现在同时传2个文件,反而可能因为SSH会话的资源竞争拖慢单文件速度,可以暂时把「限制同时传输的文件数」改成1,测试下单个文件的上传速度有没有提升。
三、排查服务器端的资源瓶颈
上传速度慢也可能是服务器本身的资源不够:
- 用
top命令看CPU使用率,如果SSH进程(sshd)占用CPU很高,可能是压缩或者加密消耗过大,这时候可以考虑关闭压缩,或者换用更轻量的加密算法(比如在sshd_config里加Ciphers chacha20-poly1305@openssh.com,这个算法CPU占用更低)。 - 用
iotop命令检查磁盘IO,上传的时候如果磁盘读写占用100%,那速度肯定会被磁盘限制,尤其是机械硬盘的话,这种情况很常见,可以先暂停服务器上的其他磁盘密集型任务再测试。 - 确认服务器有没有被防火墙或者机房限制带宽,比如用
speedtest-cli在服务器上测下上行带宽,看看是不是服务器本身的带宽就不够。
四、换用其他SFTP客户端测试
先排除是不是FileZilla的问题,比如用命令行的scp或者sftp上传同一个文件:
scp /本地文件路径 你的用户名@服务器IP:/服务器目标路径
如果命令行上传速度正常,那问题肯定在FileZilla的设置上;如果命令行也慢,那重点就放在服务器端的SSH配置和资源排查上。
备注:内容来源于stack exchange,提问作者Jez




