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

141 天前
 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 特征。这样既通过了运营商的检测,又不会到达服务器。

后记

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

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

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

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

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

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

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

https://ex.noerr.eu.org/t/1118730

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

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

© 2021 V2EX