请教下各位大牛,我有一台国内的 nat vps,我试过直接从 vps 上通过 scp 或 wget 的方式下载欧洲的服务器里的资源,速率可以达到 7-8M/s 。我在本地通过 scp 方式下载 nat vps 的资源,速率可达到 10M 。 可是通过 nat vps 上设置的端口转发方式,从本地下载欧洲的服务器里的资源最多只有 3M/s,我先怀疑是不是转发工具性能的问题,但我先后试了 socat 、haproxy 、realm 、firewalld 等多种转发工具,发现速度还是超不过 3m/s,这是怎么回事呢?端口转发会有这么大的损耗吗?大牛们有遇到过吗?谢谢!
1
ericbize 2020-10-04 23:33:48 +08:00 via iPhone
bbr 试一下
|
2
nowjust OP nat vps 和欧洲服务器都装了
|
3
heiher 2020-10-05 01:26:34 +08:00 via Android
试试用户态转发,不是直接包转发。
|
4
laminux29 2020-10-05 09:25:46 +08:00
1.监视一下整个 vps 的对于每条链接的传输速度,来排查一下是不是端口转发造成损耗。
举个例子,vps 到你家里的链路传输速度为 5MB/s,但实际数据速度只有 1MB/s,那就相当于损耗了 4MB/s 的数据。 这种数据损耗的原因有很多,比如这种端口转发协议比不上直接 scp,或者端口转发协议被 gfw 或运营商识别了,等等。 2.分别测试: 欧洲服务器-vps vps-你家 欧洲服务器-vps-你家 三种模式的延迟。我觉得问题应该卡在这里了。出现这种问题的可能原因,要不是端口转发程序的内部 bug 或业务逻辑导致产生延迟,要不是协议对这种端口转发模式支持不好造成了延迟。 3.无论是以上哪种问题,建议都别做端口转发了,做存储转发。 |
5
vszs 2020-10-05 11:13:37 +08:00
运营商 qos 的可能比较大
|
6
flynaj 2020-10-05 11:16:34 +08:00 via Android
试试 gost
|
9
nowjust OP @laminux29 感谢分析,我来试一试延迟情况。另外,我在 nat 上用 iftop 做了个监测,从监测情况看,欧服到 nat 段的速率总要比 nat 到本地的速率慢个 1-200k,感觉像是欧服到 vps 段的速度限制了整个转发速率。
|
15
mepwang 2020-10-05 17:28:30 +08:00 via iPhone
好像通用 Linux 转发效率本身就不高,绕过操作系统协议栈的用户态转发速度快很多,比如基于 DPDK 的包转发工具
|
16
vduang 2020-10-05 19:29:39 +08:00 via Android
端口转发没这么大损耗。做转发的时候实际占用带宽是你下载速度的 2 倍,所以你的 vps 下行速度已经达到 6m 了,可能已经接近带宽限制了。另外 dns 解析到的 ip 也可能影响下载速度,换成直接用 ip 去 wget 试试
|
17
kangsheng9527 2020-10-05 20:19:31 +08:00
只要能重现问题就能找出问题甚至解决问题。。。
|
18
luguiyao 2020-10-06 05:44:25 +08:00
也可以尝试 nginx 反代
|
19
alect 2020-10-06 08:42:27 +08:00
这种情况下,虽然你只有 3M,但中转服务器的速率是 3+3,上下行一起跑的
|
20
nowjust OP |
22
epson3333 2020-10-07 22:23:22 +08:00
开锐速脱胎换骨
|