移动开始对白名单以外的域名、网络协议进行上传限速。
具体表现在:
除了移动以外,其他运营商也有类似表现:
深度包检测。默认限速 1 Mbps ( 125 kB/s ),检测到白名单协议、域名之后,放开至正常速(我测得 100 Mbps )。
以下均是我在移动宽带下测得的结果。
HTTPS:TCP 443 端口,SNI 探测
目标端口为 443 的 TCP 连接建立成功,客户端发送的 TLS Client Hello 包含白名单域名,解除限速。
比如,在 TCP 建立时,使用下方二进制串,即可解除限速。虽然很多字段是不合法的,比如长度填了 0 ,域名直接放在了最后。但是不影响上游匹配到了 TLS 特征,并命中了域名关键字,放开限速。
"\x16" // Handshake
"\x03\x00" // TLS version
"\x00\x00" // Length (0)
"\x01" // Client Hello
"\x00\x00\x00" // Length (0)
"\x03\x00" // TLS version
"speedtest.cn"
这个检测仅适用于 443 端口。其他端口使用 HTTPS 依然保持限速。
HTTP:所有 TCP 端口,HTTP 头 Host 字段检测
同样地,只要匹配到关键特征即可解除限速。
"HTTP/\r\n"
"Host: speedtest.cn\r\n"
"\r\n"
DNS:53 端口,首个 UDP 包含有 DNS 协议特征
目标端口为 53 端口,只要第一个 UDP 包发送含有如下 DNS 特征的请求,就可以解除限速。同样是特征匹配,不需要合法。
"\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\1\0\1"
待发现
尚未找出对其他 UDP 端口解除限速的方法。
该检测会追踪整个 TCP 的状态。在已建立的 TCP 连接中,构造 SYN 之后再发 SNI 或者 HTTP 特征并不会骗过检测机制,达成解除限速的效果。
话说,这个探测方式是不是很眼熟。我怀疑是不是某个神秘技术下放到了运营商,区别只在:一个是检测到就断流,一个是检测到就恢复上传速度。
这里介绍除了投诉以外的规避方案。
设置混淆的 host 为白名单网站即可。
使用 TCP 协议作为隧道可能不是最佳,因此我 fork 了 udp2raw ,在上面加上了 HTTP 特征: https://github.com/MikeWang000000/udp2raw
这个特征很明显的通过了运营商的检测,上传速度恢复到 100 Mbps 。
可以参考这个提交:commit c4995ea
使用方法是在参数后加上 --fake-http speedtest.cn
这样就会混淆为在访问测速网站。
(理论上,未验证)可以使用 eBPF 等手段,在 TCP 连接建立时,使用较小的 TTL 发送 HTTP 特征。这样既通过了运营商的检测,又不会到达服务器。
因为省间结算,运营商费尽心机限制用户上传。这种白名单机制也让用户难以投诉:常见网站、测速网站的上传检测都是正常。运营商可以直接不承认有限速行为,而归结为用户问题。不知道以后还有什么新的手段呢?
![]() |
1
heiher 4 天前 via Android
赞!从外面建立的 TCP 入站连接,连接建立后服务端发送白名单 HTTP 请求作为“响应”,能解除上传限速吗?
|
![]() |
2
mikewang OP #1 @heiher 刚刚实测了一下。有意思的是,这个包不分方向。
从 server -> client 或者 client -> server 只要有一处匹配到特征,就解除限速了。 |
![]() |
4
MFWT 4 天前
> 带 HTTP 混淆的网络工具
这个会不会有风险?家宽开 HTTP 访问什么的,不确定他判断方式是主动扫描还是流量监听 |
![]() |
5
heiher 4 天前 via Android
|
![]() |
6
Trim21 4 天前
BT 的 TCP 流必须以特定的协议头 开始,看这样子好像不太好绕过?
|
![]() |
7
Trim21 4 天前
@Trim21 #6 如果是未开启混淆的 bt tcp 的话,理论上说应该可以在 68 字节的握手之后插入一个包含任意文本的包。不过不知道在这个地方发送对应的文本还能不能触发解除限制了。
\x00\x00\x00\x1f \x20 \x99HTTP/\r\nHost: speedtest.cn\r\n\r\n ( hex 之后是 0000001f2099485454502f0d0a486f73743a207370656564746573742e636e0d0a0d0a ) |
![]() |
8
383394544 4 天前 via iPhone
看到白名单域名是 speedtest.cn 笑了
|
9
iijboom 4 天前
提问,电信的被 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 半小时老化 |
10
youx 4 天前
@383394544 speedtest.net 中国大陆测速节点 迟早要被全部拆除
|
11
huihuilang 4 天前 via Android
所谓的 sni 伪装?
伪装成境外的白名单是不是也可以? |
![]() |
13
heiher 4 天前 via Android
另外,是不是有没有 http response 不重要?如果是伪装双向都发 http request :D
|
![]() |
14
wy315700 4 天前
哪个地方的移动啊
上海移动最近给大流量用户开始每天晚上 8 点和 10 点断线重拨 |
![]() |
17
PROJECT 4 天前
看上去 doh 或者 doq 是有点用的
|
![]() |
18
heiher 4 天前
实测我这移动和电信之间白天跨网不限速,晚高峰使用 HTTP 伪装也不提速。
|
19
JasperHale 3 天前
鄙人觉得这个逻辑不像是 GFW 倒是类似 反诈墙的下放.
|
![]() |
20
NewYear 3 天前
哈哈,我在想在未来的世界,互联网充满了这类“伪装数据包”,也是蛮有意思的。
|
![]() |
21
ilili 3 天前
我预感伪装 host 免流的那一套很适合解限速,ss+obfs 就完事了
|
22
ERvISTyP 3 天前
今天试了下 op 的这个方案( udp2raw + wireguard ),还是限速,不知道我这电信用了什么黑魔法
我这最开始的时候用 shadowTLS 就行破,现在都不行了 |
23
basncy 3 天前
解除 UDP 限速很容易,使用 RAID 0 级的条带化并行传输,2 秒零百加速不是梦。为了世界的和平,正常的 ISP 会封 IP 断流(迅雷一开,全家断网)。
|
![]() |
24
east4ming 3 天前 via Android
突然想到一个问题,那 http3 呢?
|
![]() |
26
playboy0 2 天前
如果直接用 reality 这种协议呢🤔 谢谢楼主
|
![]() |
27
kdzhq443 2 天前
何必呢,直接转网
|
28
rulagiti 1 天前
真恶心,骚操作一波又一波。
|
![]() |
30
iamqk 15 小时 10 分钟前
我说的怎么挂了代理上传速度就恢复正常呢
|
31
zzyyzz 13 小时 10 分钟前
湖南电信上周就发现了。表现在 OneDrive 上传时,一开始只能跑在 800-1024KByte/s 。一段时间后,可达到 5-6Mbyte/s 满速上传。
|