FakeHTTP
https://github.com/MikeWang000000/FakeHTTP
原理:
在 TCP 三次握手之后,立即发送一个 HTTP GET 请求,Host 为指定域名。使用 NFQUEUE 实现。
相关帖子:
- /t/1118730 [长文] 移动白名单上传限速机制,以及解决办法
- /t/1120910 [未测试] 绕过上海电信白名单限速
命令(需要 sudo ):
fakehttp -h www.example.com -i eth0
特点:
因为 nf_deaf 是内核模块,需要手动编译,有一定使用门槛。FakeHTTP 选择使用 iptables + NFQUEUE 方案,使用 musl 静态编译,通用全部主流 Linux 发行版。
一些说明:
- iptables ( iptables-legacy 或者 iptables-nft 都行)规则都在 mangle 表内。
- FakeHTTP 检查入站的第一个 ACK 或者 SYN-ACK ,后续数据包打上 fwmark 不再检查。
- TTL 值默认为 3 ,可以通过
-t <ttl>调整。要让这个 HTTP 数据包刚好通过限速检查,但不被目标服务器收到。 - 精简的 OpenWRT 可能需要
opkg install kmod-...,主要是要有 nfqueue 、conntrack 功能。 - 不支持 WSL (比较麻烦)
特别说明:
首次使用 FakeHTTP ,请不要远程操作。若使用不当,可能造成远程机器断网。
备注:
目前因为 NAT 规则还没有适配,仅支持本机解除限速。后续会支持下游机器。
