[长文] 移动白名单上传限速机制,以及解决办法

3 天前
 mikewang

背景

移动开始对白名单以外的域名、网络协议进行上传限速。

具体表现在:

除了移动以外,其他运营商也有类似表现:

限速机制

深度包检测。默认限速 1 Mbps ( 125 kB/s ),检测到白名单协议、域名之后,放开至正常速(我测得 100 Mbps )。

以下均是我在移动宽带下测得的结果。

TCP

UDP

补充

该检测会追踪整个 TCP 的状态。在已建立的 TCP 连接中,构造 SYN 之后再发 SNI 或者 HTTP 特征并不会骗过检测机制,达成解除限速的效果。

话说,这个探测方式是不是很眼熟。我怀疑是不是某个神秘技术下放到了运营商,区别只在:一个是检测到就断流,一个是检测到就恢复上传速度。

解决方案

这里介绍除了投诉以外的规避方案。

带 HTTP 混淆的网络工具

设置混淆的 host 为白名单网站即可。

udp2raw 中加上 HTTP 特征

使用 TCP 协议作为隧道可能不是最佳,因此我 fork 了 udp2raw ,在上面加上了 HTTP 特征: https://github.com/MikeWang000000/udp2raw

这个特征很明显的通过了运营商的检测,上传速度恢复到 100 Mbps 。

可以参考这个提交:commit c4995ea

使用方法是在参数后加上 --fake-http speedtest.cn 这样就会混淆为在访问测速网站。

对于一般的 TCP 连接

(理论上,未验证)可以使用 eBPF 等手段,在 TCP 连接建立时,使用较小的 TTL 发送 HTTP 特征。这样既通过了运营商的检测,又不会到达服务器。

后记

因为省间结算,运营商费尽心机限制用户上传。这种白名单机制也让用户难以投诉:常见网站、测速网站的上传检测都是正常。运营商可以直接不承认有限速行为,而归结为用户问题。不知道以后还有什么新的手段呢?

2398 次点击
所在节点    宽带症候群
27 条回复
heiher
3 天前
赞!从外面建立的 TCP 入站连接,连接建立后服务端发送白名单 HTTP 请求作为“响应”,能解除上传限速吗?
mikewang
3 天前
#1 @heiher 刚刚实测了一下。有意思的是,这个包不分方向。
从 server -> client 或者 client -> server 只要有一处匹配到特征,就解除限速了。
heiher
3 天前
@mikewang #2 666 ,我也去在“回家”套件中加上这个伪装
MFWT
3 天前
> 带 HTTP 混淆的网络工具

这个会不会有风险?家宽开 HTTP 访问什么的,不确定他判断方式是主动扫描还是流量监听
heiher
3 天前
@MFWT 好在不区分方向,如果是手机访问为主,逆向进行 HTTP 握手对服务端的家宽是保护。如果两端都是家宽还是有风险。 @mikewang 除了 http(s)还有没有发现什么其它特征也有同等效果?
Trim21
3 天前
BT 的 TCP 流必须以特定的协议头 开始,看这样子好像不太好绕过?
Trim21
3 天前
@Trim21 #6 如果是未开启混淆的 bt tcp 的话,理论上说应该可以在 68 字节的握手之后插入一个包含任意文本的包。不过不知道在这个地方发送对应的文本还能不能触发解除限制了。

\x00\x00\x00\x1f
\x20
\x99HTTP/\r\nHost: speedtest.cn\r\n\r\n

( hex 之后是 0000001f2099485454502f0d0a486f73743a207370656564746573742e636e0d0a0d0a )
383394544
2 天前
看到白名单域名是 speedtest.cn 笑了
iijboom
2 天前
提问,电信的被 qos 或者其他特殊待遇有明显的 mtu 特征或者其他特征,移动的都有什么特征?
上海电信的 https://www.v2ex.com/t/1091657 https://www.v2ex.com/t/1097472 精品网和被限速的 mtu 都是 1442
广东电信的 https://www.v2ex.com/t/1079783 没被限速,但是 mtu 变 1430 ,内网 IP 变 100.64 ,变 nat4 ,ipv6 半小时老化
youx
2 天前
@383394544 speedtest.net 中国大陆测速节点 迟早要被全部拆除
huihuilang
2 天前
所谓的 sni 伪装?
伪装成境外的白名单是不是也可以?
383394544
2 天前
@youx #10 .net 和 .cn 不是一个站
heiher
2 天前
另外,是不是有没有 http response 不重要?如果是伪装双向都发 http request :D
wy315700
2 天前
哪个地方的移动啊

上海移动最近给大流量用户开始每天晚上 8 点和 10 点断线重拨
youx
2 天前
@383394544 我知道不是同一个网站
iijboom
2 天前
@wy315700 贴主是江苏移动,上海移动这个手段倒是很多地方用,就是干扰 pcdn
PROJECT
2 天前
看上去 doh 或者 doq 是有点用的
heiher
2 天前
实测我这移动和电信之间白天跨网不限速,晚高峰使用 HTTP 伪装也不提速。
JasperHale
2 天前
鄙人觉得这个逻辑不像是 GFW 倒是类似 反诈墙的下放.
NewYear
2 天前
哈哈,我在想在未来的世界,互联网充满了这类“伪装数据包”,也是蛮有意思的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1118730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX