Ing*_*ngo 8 linux ssh ssh-tunnel
因此,我最近需要从我们的海外办事处之一通过 Internet 提取大文件。两个办公室在两个方向上都有 50Mbit 的光纤链路,但往返时间很可怕,从正常情况下的 450 毫秒到糟糕一天的 750 毫秒不等。
最初,我尝试通过 VPN 连接拉取文件,但在几次传输失败(smb 确实在慢速链接上很糟糕)并且速度达到最大约 128kBps 后,一个快速的谷歌显示我遇到了 Windows TCP 窗口缩放问题。
从那以后,我通过商业私有云类型服务推送文件,该服务更快地将文件发送到这里,因此以下内容更多是出于好奇心。
更有趣的是,两端的互联网访问都是通过 http 代理进行的。但是,我在两端的机器上都拥有管理员权限。
你将如何获得更好的速度?
我尝试过的事情:
1)两台linux虚拟机之间的普通SFTP,使用corkscrew打孔通过http代理和第三个中介将两端连接在一起。达到的速度:大约 600kBps。
2) SFTP 但使用用 HPN-SSH 修补的 OpenSSH。开瓶器和中间配置与 1) 相同。几乎没有速度提升。
3) 按照 2 但使用 LFTPpget -c -n 10将传输分成块。这是迄今为止最好的,看到 3.5MBps ...
欢迎所有改进。
这些天,我通过将 rsync 包装在 UDP 上,使用UDR作为传输来解决长距离和更高延迟链接上的传输。UDR 使用 UDT,其描述为:
UDT 是一种可靠的基于 UDP 的应用级数据传输协议,适用于广域高速网络上的分布式数据密集型应用。UDT 使用 UDP 传输批量数据,具有自己的可靠性控制和拥塞控制机制。新协议可以以比 TCP 高得多的速度传输数据。UDT 也是一个高度可配置的框架,可以适应各种拥塞控制算法。
默认情况下,这会禁用加密,这是我在修补HPN-SSH时需要的主要功能,但 UDP 方法有很大帮助。UDR/UDP 解决方案的主要好处是命令功能没有太大变化。您最终会在 rsync 命令前加上udr.
udr rsync -avP --stats --delete --inplace /data/ mir1:/data/
Run Code Online (Sandbox Code Playgroud)
我在 $lastjob 遇到了同样的问题。
纯粹在我自己的基础设施内,我从未找到比 LFTP 更好的解决方案。
如果您能证明费用合理,您可以购买具有 WAN 加速功能的设备。基本上,他们会透明地将您的请求变成更大的块,从而大大减少两个站点之间的通信。Riverbed 可能是最著名的选择,但 IIRC 也有一个用于 Juniper 路由器的模块来执行此操作。我目前不知道有任何 FLOSS 选项。
我实际上发现最好的选择是 Dropbox 等,但这对你来说可能无法接受。