最近帮朋友搬家,他把工作室的视频素材打包上传到公司服务器,结果FTP传了大半天才传完10个G,急得直拍桌子。其实这种情况挺常见的,很多人以为是网络问题,但FTP传输速度上不去,原因往往出在细节上。
带宽没跑满,别急着怪网速
打开任务管理器一看,网络占用才2MB/s,可家里装的是100M宽带,理论上能跑10MB以上。这时候先别骂运营商,可能是FTP客户端设置出了问题。比如FileZilla,默认并发连接数只有1个,相当于单车道跑货车。可以在“传输设置”里把最大连接数调到4~6个,立马感觉不一样。
服务器端限制容易被忽略
有些企业FTP服务器为了稳定,会限制单用户连接数或带宽。比如vsftpd配置文件里写着 anon_max_rate=102400,这就直接给你限到了100KB/s。联系管理员确认下有没有这类策略,不然自己怎么折腾都没用。
被动模式搞不定防火墙
公司在内网用FTP,经常卡在“正在连接...”这一步。多半是被动模式(PASV)端口被防火墙拦了。可以尝试切换成主动模式(PORT),或者让运维在防火墙上放开一段高端口范围,比如30000-31000,并在FTP服务端配置 pasv_min_port 和 pasv_max_port 对应起来。
硬盘性能拖后腿
有一次我在老式机械硬盘上跑FTP服务,读取速度本身就只有60MB/s,再加上碎片多,一传大文件就卡顿。换成SSD之后明显流畅多了。特别是做视频剪辑的朋友,源文件放在移动硬盘里传,如果硬盘是USB 2.0接口的,那再快的网络也白搭。
DNS解析慢也可能影响连接建立
看起来和传输无关,但DNS解析慢会导致每次连接都卡几秒,频繁断点续传时特别明显。可以把常用的FTP服务器IP写进本地hosts文件,省去反复查询的时间。比如:
192.168.1.100 ftp.company.com
试试命令行看看真实情况
图形界面看着热闹,有时候信息不全。打开终端用原生命令试一把:
ftp ftp.example.com
登录后输入 bin 切换成二进制模式,再用 put bigfile.zip 传一个大文件,观察返回的速率和丢包提示。有时候能看到“Data connection closed due to timeout”,这就说明中间有设备切断了长连接。
路由器QoS功能可能偷偷限速
家用路由器开了“游戏加速”或“视频优先”,反而把FTP这种传统协议当成低优先级流量压着。进路由后台看看有没有启用QoS,暂时关掉试试。我之前修过一台TP-LINK,关掉智能限速后FTP从800KB/s飙到了6MB/s。
FTP这东西看着简单,真出问题往往是多个环节叠加的结果。与其一遍遍重试,不如一步步排查:换设备测、换软件试、看日志查超时,总能找到瓶颈在哪。