12下一页
返回列表 发布新帖

[玩法教程] FakeHTTP-运营商白名单限速解决方案

2409 17
发表于 2026-3-5 12:23:05 | 查看全部 阅读模式 IP:–广东–佛山–高明区

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

工具作者:mikewang
项目地址:https://github.com/MikeWang000000/FakeHTTP
相关帖子:[长文] 移动白名单上传限速机制,以及解决办法:https://v2ex.com/t/1118730
1. IPv4/IPv6 均存在限制。
3. 测速网站无论怎么测都正常。
5. 经客户端抓包发现,运营商限制到同一目的 IP+端口的 TCP 连接数,多的 SYN 丢掉。
6. 经服务端抓包发现,高峰期开启无差别限速模式,触发限速后,运营商会丢掉服务端发出的含有 PSH 或 FIN 的 TCP 控制报文,于是双方只能等超时后 RST ,导致大量连接处于等待状态很久后才 RST ,大量的不正常连接导致整体网络卡顿。

    这个 GitHub 项目 FakeHTTP(由 MikeWang000000 开发)是一个非常有意思的网络工具。它的核心功能是通过 Netfilter Queue (NFQUEUE) 将所有的 TCP 连接伪装成 HTTP 协议,从而规避深度包检测(DPI)。
   工作原理
  • 拦截:当你的电脑尝试建立一个 TCP 连接(如访问某个受限服务)时。
  • 伪装:FakeHTTP 在 TCP 三次握手期间,抢先插入一个伪造的 HTTP 请求。
  • 欺骗:中间的 DPI 设备(防火墙)看到流量开头是标准的 HTTP 格式,会将其误判为普通网页浏览而放行。
  • 透传:一旦握手和混淆完成,后续真实的 TCP 数据会继续传输。

docker部署(目前仅有x86):


services:
  fakehttp:
    image: nattertool/fakehttp:latest
    container_name: fakehttp
    network_mode: host
    privileged: true
    cap_add:
      - CAP_NET_ADMIN
      - CAP_NET_RAW
      - CAP_SYS_MODULE
      - CAP_SYS_NICE
    volumes:
      - ./payloads:/payloads
    command: >-
      -a        #运行参数: 监听所有网卡
      -s        # 运行参数: 静默模式 (Silent)
      -b /payloads/payload_1.bin        #指定伪装报文路径
      -h www.bing.com        #伪造的目标域名
      -e                                 #直接指定伪装响应字符串
      -t 10        # 设置 TTL 为 10
    restart: unless-stopped


相关命令说明:
  1. Usage: fakehttp [options]

  2. 接口选项(Interface Options):
  3.   -a                 作用于所有网络接口(忽略 -i)
  4.   -i <interface>     作用于指定的网络接口

  5. 负载选项(Payload Options):
  6.   -b <file>          使用二进制文件作为 TCP 负载
  7.   -e <hostname>      用于 HTTPS 混淆的主机名
  8.   -h <hostname>      用于 HTTP 混淆的主机名

  9. 通用选项(General Options):
  10.   -0                 处理入站连接
  11.   -1                 处理出站连接
  12.   -4                 处理 IPv4 连接
  13.   -6                 处理 IPv6 连接
  14.   -d                 以守护进程方式运行
  15.   -k                 杀掉正在运行的进程
  16.   -s                 启用静默模式
  17.   -w <file>          将日志写入 <file>,而不是标准错误输出

  18. 高级选项(Advanced Options):
  19.   -f                 跳过防火墙规则
  20.   -g                 禁用跃点数估算
  21.   -m <mark>          用于绕过队列的 fwmark
  22.   -n <number>        Netfilter 队列编号
  23.   -r <repeat>        重复生成的数据包 <repeat> 次
  24.   -t <ttl>           生成数据包的 TTL
  25.   -x <mask>          设置 fwmark 的掩码
  26.   -y <pct>           将 TTL 动态提升至估算跃点数的 <pct>%
  27.   -z                 使用 iptables 命令而不是 nft
复制代码




评论17

梦梦Lv.7绿联NAS社区会员用户 发表于 2026-3-5 14:32:52 来自手机 | 查看全部 IP:–广东–佛山–高明区
牛蛙
Desire.楼主Lv.4 发表于 2026-3-5 15:08:13 | 查看全部 IP:–广东–佛山–高明区
https://github.com/maple-zh/FakeHTTP-docker
打包了arm版本的docker镜像,可以直接导入到docker部署,4300可用
部署方式:
image: ghcr.io/maple-zh/fakehttp-docker:latest
孙笑川258Lv.4绿联NAS社区会员用户 发表于 2026-3-6 12:42:34 来自手机 | 查看全部 IP:–江苏–苏州
Mark
lfJFbSLv.1 发表于 2026-3-7 14:45:05 | 查看全部 IP:–浙江–绍兴
启动不了呀
image.png
Desire.楼主Lv.4 发表于 2026-3-13 20:48:24 | 查看全部 IP:–广东–佛山–高明区

提示了文件不存在

使用了-b 命令 没有对应的payload.bin包
MrGlassesLv.1 发表于 2026-3-14 16:52:27 | 查看全部 IP:–广东–佛山–高明区
联通电信的宽带需要弄这个吗
晓晓Lv.2绿联NAS社区会员用户 发表于 2026-3-21 22:13:28 | 查看全部 IP:–湖北–襄阳
大佬你能不能直接给个playload文件
雨夜残烛Lv.1 发表于 2026-3-23 13:25:20 来自手机 | 查看全部 IP:–福建–福州
老哥抓的playload文件应该选哪一段呀,那么多记录搞不会,随便挑了几个部署限速也没变
Desire.楼主Lv.4 发表于 2026-3-27 10:40:34 | 查看全部 IP:–广东–佛山–高明区
搞了个油猴脚本

  1. // ==UserScript==
  2. // @name         FakeHTTP Payload 增强版 (多模板/CDN优化)
  3. // @namespace    http://tampermonkey.net/
  4. // @version      3.0
  5. // @description  内置主流大厂CDN/测速模板,自动生成高仿真的 payload.bin,优化UI和稳定性
  6. // @author       Gemini (优化版)
  7. // @match        *://*/*
  8. // @grant        none
  9. // ==/UserScript==

  10. (function() {
  11.     'use strict';

  12.     // ========== 1. 扩展模板库:新增腾讯、百度、京东、字节、华为、阿里云OSS等主流CDN/大厂模板 ==========
  13.     const templates = {
  14.         // 测速模板
  15.         'speedtest': { host: 'www.speedtest.cn', path: '/test/download', desc: '测速网站' },
  16.         // 阿里系
  17.         'alicdn': { host: 'update.alicdn.com', path: '/download/client.exe', desc: '阿里CDN' },
  18.         'alioss': { host: 'oss-cn-hangzhou.aliyuncs.com', path: '/aliyun-oss-sdk.zip', desc: '阿里云OSS' },
  19.         // 腾讯系
  20.         'tencentcdn': { host: 'dl.qq.com', path: '/qqmail/cgi-bin/download', desc: '腾讯CDN' },
  21.         'txcloud': { host: 'mirrors.cloud.tencent.com', path: '/centos/7/isos/x86_64/', desc: '腾讯云镜像' },
  22.         // 百度系
  23.         'baiducdn': { host: 'd.pcs.baidu.com', path: '/rest/2.0/pcs/file', desc: '百度网盘CDN' },
  24.         // 字节系
  25.         'bytedance': { host: 'sf3-cn.byteimg.com', path: '/obj/eden-cn/ptlz_zlp/web/dist/app.js', desc: '字节跳动CDN' },
  26.         // 微软/苹果/华为
  27.         'microsoft': { host: 'update.microsoft.com', path: '/v11/3/windowsupdate', desc: '微软更新' },
  28.         'apple': { host: 'iosapps.itunes.apple.com', path: '/apple-auth/auth', desc: '苹果应用商店' },
  29.         'huawei': { host: 'update.huawei.com', path: '/hmscore/update', desc: '华为更新' },
  30.         // 电商系
  31.         'jd': { host: 'd.jd.com', path: '/drip/getDripData.json', desc: '京东CDN' },
  32.         'taobao': { host: 'g.alicdn.com', path: '/tb-homepage/tb-home-mini/2.3.5/index.min.js', desc: '淘宝CDN' }
  33.     };

  34.     // ========== 2. 创建优化后的UI:分类展示、加载状态、提示文案 ==========
  35.     const container = document.createElement('div');
  36.     container.style = `
  37.         position:fixed;
  38.         bottom:20px;
  39.         right:20px;
  40.         z-index:9999;
  41.         background:#fff;
  42.         padding:15px;
  43.         border-radius:12px;
  44.         box-shadow:0 6px 20px rgba(0,0,0,0.15);
  45.         display:flex;
  46.         flex-direction:column;
  47.         gap:10px;
  48.         border:1px solid #eee;
  49.         min-width:200px;
  50.     `;

  51.     // 标题区域(增加版本和提示)
  52.     const titleWrap = document.createElement('div');
  53.     titleWrap.style = "display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;";
  54.     const title = document.createElement('div');
  55.     title.innerText = 'FakeHTTP 提取器 v3.0';
  56.     title.style = "font-weight:600;font-size:14px;color:#222;";
  57.     const tips = document.createElement('div');
  58.     tips.innerText = '高仿真请求头';
  59.     tips.style = "font-size:10px;color:#999;";
  60.     titleWrap.appendChild(title);
  61.     titleWrap.appendChild(tips);
  62.     container.appendChild(titleWrap);

  63.     // 分类标题(区分测速/大厂/电商)
  64.     const addCategoryTitle = (text) => {
  65.         const t = document.createElement('div');
  66.         t.innerText = text;
  67.         t.style = "font-size:11px;color:#666;margin:5px 0 2px 0;padding-left:2px;";
  68.         container.appendChild(t);
  69.     };

  70.     // ========== 3. 按分类生成按钮 ==========
  71.     // 测速类
  72.     addCategoryTitle('测速模板');
  73.     createTemplateButton('speedtest');

  74.     // 大厂CDN类
  75.     addCategoryTitle('大厂CDN');
  76.     ['alicdn', 'alioss', 'tencentcdn', 'txcloud', 'baiducdn', 'bytedance'].forEach(createTemplateButton);

  77.     // 系统更新类
  78.     addCategoryTitle('系统更新');
  79.     ['microsoft', 'apple', 'huawei'].forEach(createTemplateButton);

  80.     // 电商类
  81.     addCategoryTitle('电商CDN');
  82.     ['jd', 'taobao'].forEach(createTemplateButton);

  83.     // ========== 4. 按钮创建函数(优化样式和交互) ==========
  84.     function createTemplateButton(key) {
  85.         const template = templates[key];
  86.         const btn = document.createElement('button');
  87.         btn.innerHTML = `${template.desc || key}`; // 显示描述而非英文key
  88.         btn.style = `
  89.             padding:8px 10px;
  90.             background:#409eff;
  91.             color:white;
  92.             border:none;
  93.             border-radius:6px;
  94.             cursor:pointer;
  95.             font-size:12px;
  96.             transition:all 0.2s;
  97.             text-align:left;
  98.         `;
  99.         btn.dataset.key = key;

  100.         // 鼠标悬浮/离开效果
  101.         btn.onmouseover = () => btn.style = `
  102.             padding:8px 10px;
  103.             background:#66b1ff;
  104.             color:white;
  105.             border:none;
  106.             border-radius:6px;
  107.             cursor:pointer;
  108.             font-size:12px;
  109.             transition:all 0.2s;
  110.             text-align:left;
  111.             transform:translateY(-1px);
  112.         `;
  113.         btn.onmouseout = () => btn.style = `
  114.             padding:8px 10px;
  115.             background:#409eff;
  116.             color:white;
  117.             border:none;
  118.             border-radius:6px;
  119.             cursor:pointer;
  120.             font-size:12px;
  121.             transition:all 0.2s;
  122.             text-align:left;
  123.         `;

  124.         // 点击事件(增加加载状态、防重复点击)
  125.         btn.onclick = async () => {
  126.             // 禁用按钮+显示加载状态
  127.             btn.disabled = true;
  128.             btn.innerHTML = `生成中...`;
  129.             btn.style.background = '#909399';

  130.             try {
  131.                 await generatePayload(template.host, template.path, key);
  132.                 // 生成成功提示
  133.                 btn.innerHTML = `✅ ${template.desc}`;
  134.                 setTimeout(() => {
  135.                     btn.innerHTML = template.desc;
  136.                     btn.disabled = false;
  137.                     btn.style.background = '#409eff';
  138.                 }, 1500);
  139.             } catch (e) {
  140.                 // 生成失败提示
  141.                 btn.innerHTML = `❌ 生成失败`;
  142.                 console.error('生成Payload失败:', e);
  143.                 setTimeout(() => {
  144.                     btn.innerHTML = template.desc;
  145.                     btn.disabled = false;
  146.                     btn.style.background = '#409eff';
  147.                 }, 2000);
  148.             }
  149.         };

  150.         container.appendChild(btn);
  151.     }

  152.     // ========== 5. 核心生成函数(优化请求头/文件名/体积控制) ==========
  153.     function generatePayload(host, path, key) {
  154.         return new Promise((resolve) => {
  155.             const ua = navigator.userAgent;
  156.             // 优化填充逻辑:精准控制体积在 500-600 字节(更贴近真实请求)
  157.             const paddingLen = 450 - (host.length + path.length + ua.length);
  158.             const paddingStr = Array(Math.max(10, paddingLen)).fill(0).map(() =>
  159.                 Math.random().toString(36).charAt(2) || 'x'
  160.             ).join('');
  161.             const padding = `X-Padding: ${paddingStr}`;

  162.             // 优化请求头:增加现代浏览器的 Sec-Fetch 系列头,更仿真
  163.             const headerLines = [
  164.                 `GET ${path} HTTP/1.1`,
  165.                 `Host: ${host}`,
  166.                 `User-Agent: ${ua}`,
  167.                 `Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8`,
  168.                 `Accept-Encoding: gzip, deflate, br, zstd`,
  169.                 `Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7`,
  170.                 `Cache-Control: no-cache`,
  171.                 `Pragma: no-cache`,
  172.                 `Connection: keep-alive`,
  173.                 `Sec-Fetch-Dest: empty`,
  174.                 `Sec-Fetch-Mode: cors`,
  175.                 `Sec-Fetch-Site: cross-site`,
  176.                 `Sec-Fetch-User: ?1`,
  177.                 `Upgrade-Insecure-Requests: 1`,
  178.                 padding,
  179.                 ``, // HTTP头和体的分隔空行
  180.                 ``
  181.             ];

  182.             // 拼接HTTP头(必须用\r\n分隔,符合HTTP标准)
  183.             const rawContent = headerLines.join('\r\n');
  184.             const encoder = new TextEncoder();
  185.             const data = encoder.encode(rawContent);

  186.             // 生成二进制Blob
  187.             const blob = new Blob([data], { type: 'application/octet-stream' });
  188.             const url = URL.createObjectURL(blob);

  189.             // 优化文件名:避免split越界,更规范
  190.             const domainParts = host.split('.');
  191.             const safeDomain = domainParts.length >= 2 ? domainParts[domainParts.length - 2] : key;
  192.             const fileName = `payload_${safeDomain}_${Date.now()}.bin`; // 增加时间戳避免重名

  193.             // 触发下载
  194.             const a = document.createElement('a');
  195.             a.href = url;
  196.             a.download = fileName;
  197.             a.style.display = 'none';
  198.             document.body.appendChild(a);
  199.             a.click();

  200.             // 清理资源
  201.             setTimeout(() => {
  202.                 document.body.removeChild(a);
  203.                 URL.revokeObjectURL(url);
  204.                 resolve();
  205.             }, 100);
  206.         });
  207.     }

  208.     // 挂载到页面
  209.     document.body.appendChild(container);
  210. })();
复制代码

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表