
请教下各位大牛,我有一台国内的 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 开锐速脱胎换骨 |