FakeHTTP - 伪装 TCP 连接为 HTTP,解除白名单限速

141 天前
 mikewang

FakeHTTP

https://github.com/MikeWang000000/FakeHTTP


原理:

在 TCP 三次握手之后,立即发送一个 HTTP GET 请求,Host 为指定域名。使用 NFQUEUE 实现。


相关帖子:


命令(需要 sudo ):

fakehttp -h www.example.com -i eth0

特点:

因为 nf_deaf 是内核模块,需要手动编译,有一定使用门槛。FakeHTTP 选择使用 iptables + NFQUEUE 方案,使用 musl 静态编译,通用全部主流 Linux 发行版。

一些说明:


特别说明:

首次使用 FakeHTTP ,请不要远程操作。若使用不当,可能造成远程机器断网。


备注:

目前因为 NAT 规则还没有适配,仅支持本机解除限速。后续会支持下游机器。

25546 次点击
所在节点    宽带症候群
175 条回复
igamebox
141 天前
关了再开提示

Sun Jun 1 23:18:24 2025 [main() - src/fakehttp_nfq.c:565] ERROR: nfq_create_queue()
mikewang
140 天前
@dizhang #20 根据你描述这种情况来看,FakeHTTP 就能解决这个问题。把 -h 参数指定为测速网站域名就好。
爱快是 Linux 内核,但估计也是精简掉 nfqueue 功能了。可以试试,不行还是得装内核扩展。
像 Debian / Ubuntu / Fedora 等 Linux 发行版肯定是没问题的,开箱即用。

@igamebox #21 大概率是没退干净,用 ps 命令或者 pgrep fakehttp 看下进程号
Ipsum
140 天前
有点意思,下来看看。
qwvy2g
140 天前
假如路由器有硬件加速,这个还有用吗?
FastAce
140 天前
@mikewang 不知道免流场景能不能用,能用不得刷爆
dddedd
140 天前
@1423 hdr 亮瞎了🤣
microka
140 天前
我是 ARMv8 的 ImmortalWrt ,下载了 fakehttp-linux-arm64.tar.gz
将解压出来的两个文件上传到 ImmortalWrt 的 root 目录,并设置执行权限
root ssh 登录 ImmortalWrt ,进入 /root 目录,执行 fakehttp -h www.speedtest.cn -i wan
提示 -ash: fakehttp: not found
请问应如何使用呢?
Ipsum
140 天前
@microka 试试 ./xxx
microka
140 天前
@Ipsum #28 可以了,谢谢
qwvy2g
140 天前
用的是 CPE 设备名字 wwan0 ,运行后没有输出日志,但是能明显感觉出来打开网页没有之前迟滞感。
Rokaki
140 天前
问个小白问题,插入的额外数据到对方服务器不是无法识别吗
mikewang
140 天前
@Rokaki #31 对方收不到的。详见上文 [一些说明] 第三条解释。
Lentin
140 天前
似乎没有针对 ipv6 进行处理 可以加一下吗?
NewYear
140 天前
@mikewang #32

想了好久都没看明白啥原理,看到楼上你的提示才发现。

“TTL 值默认为 3”

这句话是如此的普通,杀伤力是如此的强大,好好的 TTL 机制竟然能玩出这种效果,真就很离谱。

你说的不支持 NAT ,是指路由器会重新对 TCP 包进行编号,导致服务器认为“前面有个数据包我咋一直没收到”吧。

唉,看你们各种玩出花,我只能跟着你们思路走,就有种白学了网络协议的感觉。

而且知道是一回事,要做到又是一回事,我的感受俩字,太牛逼了!!!
qwvy2g
140 天前
@Rokaki ttl 很小可能还没到运营商骨干网就丢了。
NewYear
140 天前
哈哈哈,你这么“天秀”,会让很多学网络的人觉得自己很呆……


另外,这种特征明显,应该很容易识别,不过却也无法简简单单的识别,对设备的要求应该不低。
qwvy2g
140 天前
是运营商先不讲无德,测速白名单这是以前长宽,鹏博士等二级运营商干的事。
ioooou
140 天前
@mikewang 在 Debian12 上运行时提示:

bash fakehttp -h www.speedtest.cn -i eth0
Mon Jun 2 01:18:04 2025 [main() - src/fakehttp_nfq.c:501] FakeHTTP version 0.9.1
iptables v1.8.9 (nf_tables): Could not fetch rule set generation id: Invalid argument

请问如何解决?
microka
140 天前
请问这个对 IPv6 连接也生效吗?
rick13
140 天前
@1423 老哥你这头像太强了

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

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

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

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

© 2021 V2EX