LGA1150

[未测试] 绕过上海电信白名单限速

  •  
  •   LGA1150 · Mar 25, 2025 · 19001 views
    This topic created in 588 days ago, the information mentioned may be changed or developed.

    自用了很久的玩具项目 https://github.com/LGA1150/nf_deaf

    原理:TCP 三次握手后在真实的请求之前发送一个在白名单之内的伪造请求,理论上不需要有服务器转发。
    使用 skb fwmark 控制,兼容 iptables/nftables 。
    伪造请求内容可自定义。

    57 replies  •  2026-02-23 00:13:14 +08:00
    wyntalgeer
    wyntalgeer
    Mar 25, 2025
    1
    旁路部署?
    sadan9
    sadan9
    Mar 25, 2025
    2
    关键添加的数据如何不影响正常的通信。
    wy315700
    wy315700
    Mar 25, 2025
    3
    @sadan9
    TTL 短一点就行了,




    看了眼代码,发现自己看不懂
    des
    des
    Mar 25, 2025
    4
    这个咋用啊
    Lentin
    Lentin
    Mar 25, 2025
    5
    等个使用说明书~。~
    Chihaya0824
    Chihaya0824
    Mar 25, 2025
    6
    野生的 kmod 出现了,这个性能怎么样啊,可以无脑给所有流量 setmark 吗?
    tf2
    tf2
    Mar 25, 2025
    7
    好家伙。0 注释!
    bosonx
    bosonx
    Mar 26, 2025 via Android
    8
    等一个教程
    VwEI
    VwEI
    Mar 26, 2025
    9
    等一个教程
    aa51513
    aa51513
    Mar 26, 2025
    10
    你也太高看我了,一行注释都没有,怕是一时半会儿看不懂
    skylancer
    skylancer
    Mar 26, 2025
    11
    这个方式有人用来过墙的,我也没想过能绕过限速...
    skylancer
    skylancer
    Mar 26, 2025
    12
    这个方式有人用来过墙的,我也没想过居然能绕过限速...
    hondaya
    hondaya
    Mar 26, 2025❤️1
    13
    同求教程,我这非 443 端口上传流量大点就限制上传速率到 0.5 Mbps ,节点,frp 都没法用。自建节点和 frp 域名改成 speedtest 开头的就不限速了。
    thinsychen
    thinsychen
    Mar 26, 2025❤️1
    14
    无需旁路部署,在有权限的路由上可以部署,
    实测 内核 5.15 sh telecom 可以破解 TCP 限速 5M ,基本达到满速!感谢楼主提供的思路。
    thinsychen
    thinsychen
    Mar 26, 2025
    15
    或者 客户端部署也可以。
    huaxie1988
    huaxie1988
    Mar 26, 2025
    16
    怎么使用呢
    leeyijie
    leeyijie
    Mar 27, 2025
    17
    收藏一下
    bhkkvip
    bhkkvip
    Mar 27, 2025
    18
    用 deepseek 翻译了一遍,又问了下怎么用,大概好像知道了...
    TonyBoney
    TonyBoney
    Mar 27, 2025❤️1
    19
    在 Linux 路由器成功使用,编译并加载模块后,通过匹配数据包大小的方式跳过握手包,把教程分享给大家,不用谢:
    1. git clone 楼主的仓库,不用多说。
    2. 可以修改源码里的 payload 为你喜欢的内容,也可以在加载模块后修改/sys/kernel/debug/nf_deaf/buf 的内容,例如:
    #define NF_DEAF_BUF_DEFAULT "GET / HTTP/1.1\r\n\
    Host: www.speedtest.cn\r\n\
    User-Agent: Mozilla/5.0\r\n\
    Accept: */*\r\n\
    Connection: close\r\n\
    \r\n"
    3. 改一下 MakeFile:
    obj-m += nf_deaf.o
    KDIR := /lib/modules/$(shell uname -r)/build

    all:
    $(MAKE) -C $(KDIR) M=$(PWD) modules

    clean:
    $(MAKE) -C $(KDIR) M=$(PWD) clean

    4. 在源码目录运行 make 命令编译,没有 make 或 gcc 的自行安装
    5. 加载内核模块:insmod nf_deaf.ko ,若命令 lsmod |grep nf_deaf 有返回那么就加载完成啦
    TonyBoney
    TonyBoney
    Mar 27, 2025❤️2
    20
    6. 接下来需要给特定数据包打标记,该内核模块的触发条件是 mark 的高 16 位为 0xdeaf ,低 16 位的定义如下所示:
    15:设置 TCP 的确认号
    14:设置 TCP 的序号
    13:设置 TCP 校验和
    12-10:指定重复发送的次数
    9-5:设置延迟发送时间(jiffies)
    4-0:设置 TTL 值
    那么我们想把 TTL 设置为 2 ,别的不变,只需要设置 mark 为 0xdeaf0002 ,仅修改总大小大于 120(ipv4)和 100(ipv6)的包,避免影响握手
    TonyBoney
    TonyBoney
    Mar 27, 2025❤️1
    21
    7. 如果用 nftables ,ipv4 和 ipv6 的命令分别是:(自行修改目的地址,自担风险,小心连不上服务器)
    nft insert rule inet filter postrouting ip daddr {1.1.1.1} tcp dport { 0-65535 } meta length gt 120 meta mark set 0xdeaf0002 return comment "hahaha"

    nft insert rule inet filter postrouting ip6 daddr {2606:4700:4700::1111} tcp dport { 0-65535 } meta length gt 100 meta mark set 0xdeaf0002 return comment "hahaha"
    8. 如果用 iptables ,ipv4 和 ipv6 的命令分别是:(自行修改目的地址,自担风险,小心连不上服务器)
    iptables -t mangle -A POSTROUTING -d 1.1.1.1 -p tcp --dport 0:65535 -m length --length 121:65535 -j MARK --set-mark 0xdeaf0002 -m comment --comment "hahaha"

    ip6tables -t mangle -A POSTROUTING -d 2606:4700:4700::1111 -p tcp --dport 0:65535 -m length --length 101:65535 -j MARK --set-mark 0xdeaf0002 -m comment --comment "hahaha"
    Ipsum
    Ipsum
    Mar 28, 2025
    22
    下一步就是免流技术的大胜利?从来没想过这种技术会用来解决回家的问题。
    zer
    zer
    Mar 28, 2025
    23
    感觉可以搞成 openwrt kmod 插件
    LGA1150
    LGA1150
    OP
    Mar 28, 2025
    24
    @skylancer
    @Ipsum
    的确可以用来过墙,反正原理差不多,只是黑名单白名单的区别
    shomaru
    shomaru
    Mar 29, 2025 via Android
    25
    @TonyBoney 大佬能否加个 q 指导一下
    szdosar
    szdosar
    Mar 31, 2025
    26
    就是告诉看门的保安大叔,我是厂长的小舅子,厂长他刚买了台 su7u ,帮他提车的。
    保安大叔一看,放行,并且场内不限速,直接飙到时速 350KM
    Lentin
    Lentin
    Mar 31, 2025
    27
    参考 #19 楼大哥的步骤搓了一个飞牛 os 的内核文件,实测如果是旁路设备的话需要 ttl 改为 3 也就是对应的 mark 为 0xdeaf0003

    飞牛 OS 内核版本 Linux fnOS 6.6.38-trim #92 SMP PREEMPT_DYNAMIC Tue Mar 11 17:22:50 CST 2025 x86_64 GNU/Linux

    https://drive.google.com/file/d/1O9HRTqfJrxhuCaFlNMVT9rxNTd9eNaYt/view?usp=drive_link

    自己编译的话 build 目录的文件是从这个包里解包出来的,系统内没有这个 build 目录
    https://download.liveupdate.fnnas.com/x86_64/kernel/6.6.38-trim-92.deb
    dhdjfnnf
    dhdjfnnf
    Apr 1, 2025
    28
    大佬,这个方法可以解决 pt 限速的问题吗?
    sadan9
    sadan9
    Apr 1, 2025❤️1
    29
    编译了一个 openwrt 版,测试中.....
    tibbersvs
    tibbersvs
    Apr 1, 2025
    30
    @sadan9 大佬求带上车
    siyanmao
    siyanmao
    Apr 2, 2025
    31
    对 UDP 流量,伪装成 QUIC 会有效果吗…
    qwvy2g
    qwvy2g
    Apr 2, 2025
    32
    @sadan9 源码里面没有 kmod-debugfs 这个模块,没法继续下去。
    sadan9
    sadan9
    Apr 2, 2025
    33
    @qwvy2g 你说的"源"还是"源码"? debugfs 应该是很古老的模块了。
    c398425861
    c398425861
    Apr 3, 2025
    34
    ImmortalWrt 可以弄吗
    MutuMutu
    MutuMutu
    Apr 7, 2025
    35
    @sadan9 大佬测得咋样了
    lovexiaofan12312
    lovexiaofan12312
    Apr 12, 2025
    37
    openwrt 已经加载模块,就是不知道怎么详细使用,来个大佬
    mac100
    mac100
    Apr 26, 2025
    38
    @lovexiaofan12312 模块 怎么打包的?
    Lentin
    Lentin
    Apr 27, 2025
    39
    @TonyBoney #21 老哥 请问一下有没有办法 iptables 放行这个路径的流量,这种路径 ipv4 访问的话访问会有问题,nf_deaf 的设备旁路部署的
    Phone ( LAN )--光猫( WAN )-- 软路由( LAN )
    192.168.1.10 -- 123.123.123.123:80 -- 192.168.1.2:80
    测试过需要放行 123.123.123.123 才能正常访问,但是家宽公网 ip 是随机的,不太好锁定地址。。有没有除了用脚本获取公网 ip 自动添加规则以外的其他方案?
    LGA1150
    LGA1150
    OP
    Apr 27, 2025
    40
    @Lentin 这个怎么到光猫转了一圈又回到 LAN 了?是不是光猫开了 nat loopback ,你用公网 IP:端口访问内网服务?
    Lentin
    Lentin
    Apr 27, 2025 via iPhone
    41
    @LGA1150 对 平时用家里的节点回家+梯子 ,回家了用上这个模块就不通了,想知道有没有别的好点的方法用 iptables 解决这个问题,不然就只能写 ssid 策略了,光猫似乎没地方关闭 nat loopback
    LGA1150
    LGA1150
    OP
    Apr 27, 2025
    42
    @Lentin 如果关了 nat loopback 你就彻底不能通了。
    在软路由上抓包看,经过光猫 nat loopback 之后的源 IP 目的 IP 是多少?
    Lentin
    Lentin
    Apr 27, 2025
    43
    @LGA1150 #42
    软路由看到的源 ip 是光猫的公网 IP123.123.123.123 ,目的 IP 是软路由的内网地址 192.168.1.2
    LGA1150
    LGA1150
    OP
    Apr 27, 2025
    44
    @Lentin 那光猫这个实现有 bug ,OpenWrt 的默认用 LAN IP 当源 IP 的(可选 WAN IP )。

    不过既然改不了,就只能在软路由加个过滤规则。我给几个思路:
    1 、排除你的节点端口
    2 、从光猫访问软路由属于传入连接,使用 conntrack 区分这个连接是外部发起的还是本地发起的,并用 connmark 标记,之后就可以排除不是本地发起的连接;
    3 、如果还是想匹配传入连接,可以在 2 )的基础上,过滤 TTL 。由于光猫和软路由在同一网段,TTL 一般是个二进制整数:64 或 128 或 255 (不是 256 因为 TTL 最大就 255 ),而从光猫 WAN 外部进入的连接,由于经过了多个路由器,TTL 一般不是整数。这样可以区分 WAN 传入连接 和 光猫自己发起的连接。
    Lentin
    Lentin
    Apr 27, 2025
    45
    @LGA1150 #44 可以了,我加了一个 ttl 排除的规则就行了,经过测试测试用网线的话源 IP 是内网地址,wifi 的话会被映射为公网源地址,旁路部署需要给 set-mark 的 2 改成 3
    iptables -t mangle -A POSTROUTING -p tcp --dport 0:65535 \
    -m length --length 121:65535 \
    -m ttl ! --ttl-eq 64 \
    -j MARK --set-mark 0xdeaf0003
    lqu3j
    lqu3j
    May 22, 2025
    46
    测试有效,这边电信确实能破解了限速
    lqu3j
    lqu3j
    May 22, 2025
    47
    @lqu3j 成都电信
    TonyBoney
    TonyBoney
    May 30, 2025❤️1
    48
    Fork 了一份 https://github.com/kmb21y66/nf_deaf
    修改如下:
    1. 删除 TCP Option 里的魔数 0x1312 ,避免检测,改为复制原数据包的 TCP Option ,同时避免了 TimeStamp 缺失问题。
    2. 补全 TCP 头缺失的接收窗口。
    3. 把 mark 左移三位,原来只能设置 0-31 的 TTL ,现在能设为正常的 0-255 。
    4. 填好了测速的 payload ,不用自己改文件了。
    这样一来修改的包至少 wireshark 看顺眼了,不会标黑了
    TonyBoney
    TonyBoney
    Jun 2, 2025❤️1
    49
    之前写的 iptables/nftables 示例会给每个符合条件的包都发送一次伪装包,影响通信效率,以我 fork 版本的 mark 写个新例子,只在握手成功后发一次伪装包,iptables 太长发不出来,去项目主页看 https://github.com/kmb21y66/nf_deaf/

    例如 0xDEA10103:错误的 TCP 校验和,为防止原始包抢先发出设置 jiffies 为 1 ,TTL 为 3 。

    nftables 配置文件示例:

    #!/usr/sbin/nft -f

    #清空 nftables 规则,小心这一条
    flush ruleset

    table inet filter {
    chain postrouting {
    type filter hook postrouting priority 0 ; policy accept;
    #被标记的连接不再打标记
    ct mark 0xDEA10103 return
    #IPv4 ,目的地址 1.1.1.1 ,TCP 端口 0-65535 ,长度大于 120 的包,设置连接标记和包标记后发出
    ip daddr {1.1.1.1} tcp dport { 0-65535 } meta length gt 120 ct mark set 0xDEA10103 meta mark set 0xDEA10103 return
    #IPv6 ,目的地址 2606:4700:4700::1111 ,TCP 端口 0-65535 ,长度大于 100 的包,设置连接标记和包标记后发出
    ip6 daddr {2606:4700:4700::1111} tcp dport { 0-65535 } meta length gt 100 ct mark set 0xDEA10103 meta mark set 0xDEA10103 return
    }
    }
    wangshou89
    wangshou89
    Jun 4, 2025 via Android
    50
    小白不会用啊,我主路由是爱快,能用在爱快里面吗
    kob5213
    kob5213
    Jun 4, 2025
    51
    @TonyBoney 目的地址是本地地址还是远端地址
    TonyBoney
    TonyBoney
    Jun 4, 2025
    52
    @kob5213 远端服务器地址
    stonesirsir
    stonesirsir
    Jun 5, 2025
    53
    @lqu3j 伪装网站用的 speedtest.cn 吗?我的访问 vps 丢包,没救了
    lqu3j
    lqu3j
    Jun 5, 2025
    54
    @stonesirsir 是的
    Lentin
    Lentin
    Jun 9, 2025
    55
    抓包看了一下进方向的流量 局域网访问本地公网的 ttl 流量始终为系统默认-1 可以这么写死了好像

    nft -f - <<EOF
    flush table ip mangle
    table ip mangle {
    chain bypass {
    type filter hook prerouting priority mangle -10; policy accept;
    ip ttl 63 meta mark set 0x8000 # *nix 默认 ttl 64-1
    ip ttl 127 meta mark set 0x8000 # windows 默认 ttl 128-1
    }
    }
    EOF
    avatasia
    56
    @TonyBoney 已编译,已配置,但是没感觉有什么区别, 用 sftp 上传文件测试的, 速度跟之前差不多,稳定在 400k 左右. 用的是示例 2, 只是修改了目标 ip.
    TonyBoney
    TonyBoney
    Feb 23 via Android
    57
    @avatasia 这可太正常了,不同地区运营商的策略不一样,有的是无差别限速,除白名单 IP 之外。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5408 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 03:18 · PVG 11:18 · LAX 19:18 · JFK 22:18
    ♥ Do have faith in what you're doing.