hezhanleiok / gate
git clone https://github.com/hezhanleiok/gate.git
—
+2
stars, 24h · #10,855
+~21
stars, 7 days · #7,715
+532
stars, 30 days · #1,541
532
★ total · +4% this week
1.0k
forks · 11 open issues
Star history (as recorded here)
LanguagePython
License—
Created2026-10-01 (22d ago)
Last push12d ago
Watchers0
OwnerUser
Links
README excerpt
# VPNGate SSTP 家宽节点(edgetunnel 链式代理) 🚀 自动抓取 VPN Gate 的 SSTP 家宽/机房节点,调用检测 Worker 逐个验证可用性,按国家分组、标注住宅/机房,生成可直接通过 **URL 自动轮换** 的节点清单。**每 30 分钟自动更新一次。** > 核心价值:VPN Gate 的 SSTP 节点 30 分钟就换一批,手动测试筛选太痛苦。本仓库把它全自动了——你只需把 `nodes.txt` 的网址填进 edgetunnel 后台一次,之后节点每 30 分钟自动换,零手动。 --- ## 架构(数据流向) ~~~text VPN Gate 官方源 │ (每 30 分钟,GitHub Actions 定时抓取) ▼ 筛选 SSTP 节点 → 去重 │ ▼ 检测 Worker (CheckSocks5,部署在 Cloudflare) │ GET /check?sstp=vpn:vpn@host:port │ 返回 success + 出口 IP(住宅/机房判定) ▼ 保留成功节点 → 按国家分组 → 住宅/机房标注 → 延迟排序 │ ▼ 生成 nodes.txt (GitHub Pages 发布) │ ▼ edgetunnel 后台「自定义优选IP」框填 https://…/nodes.txt │ edgetunnel 每次生成订阅时自动 fetch → 解析 $sstp:// → 套链式代理 ▼ 客户端订阅 edgetunnel 订阅 → 使用 SSTP 家宽节点 (每 30 分钟自动换) ~~~ --- ## 一、完整部署教程(从零开始) ### 前置条件 - 一个 Cloudflare 账号(免费即可) - 一个 GitHub 账号 - 一个已转入 Cloudflare 的域名(可选,但强烈推荐) ### 第 1 步:部署 edgetunnel(核心使用端) 1. 登录 Cloudflare 控制台,点击左侧 **Workers 和 Pages** 2. 点击 **创建** → 选择 **创建 Worker**,起名 `edgetunnel`,点击 **部署** 3. 打开 https://github.com/cmliu/edgetunnel/blob/main/_worker.js ,复制全部代码 4. 回到 Cloudflare Worker 编辑器,粘贴代码,点击 **保存并部署** 5. 在 **设置** → **变量** 中,添加变量 `ADMIN`,值填你的管理员密码 6. 在 **绑定** 中,添加 KV 命名空间绑定,变量名称填 `KV` 7. (推荐)在 **触发器** 中绑定自定义域名 8. 浏览器访问 `https://你的域名/admin`,登录后台 9. **在后台首页记下你的 UUID 和节点域名**(后面要用) > **关键**:`UUID` 和 `节点域名` 是 edgetunnel 自己的配置,**不需要**在 `vpngate.py` 中设置。`vpngate.py` 只负责生成 `nodes.txt`,edgetunnel 会用它自己的 UUID/域名去生成最终订阅。 ### 第 2 步:部署检测 Worker(CheckSocks5) 1. 打开 https://github.com/lsh8848/cm-Workers-CheckSocks5 ,点 **Fork** 2. 进 Cloudflare 控制台 → Workers 和 Pages → 创建 → 创建 Worker 3. 把 `_worker.js` 的全部内容粘贴进编辑器,点「部署」 4. 记下这个 Worker 的域名,形如 `https://xxx.你的用户名.workers.dev` 5. 验证:浏览器打开 `https://你的Worker域名/check?sstp=vpn:vpn@任意节点:端口` ,能返回 JSON 即成功 ### 第 3 步:Fork 本仓库 在 GitHub 上打开本仓库,点 **Fork**,复制到你账号下。 ### 第 4 步:修改配置(重点) 进你 fork 的仓库,修改 `vpngate.py`: | 文件 | 位置 | 改成什么 | 为什么 | | :--- | :--- | :--- | :--- | | .github/workflows/check.yml | env 里的 `CHECK_WORKER` | 你的检测 Worker 域名,形如 `https://xxx.workers.dev/check?sstp=vpn:vpn@` | 检测统一走你自己的 Worker | | vpngate.py | `NODES_URL` | 把里面写死的固定地址换成 `你的用户名/仓库名` | 自动更新时用到的固定地址 | > **注意**:`vpngate.py` 中**不需要**配置 `EDT_UUID` 和 `EDT_DOMAIN`。你之前看到的这两个变量是旧版遗留,现已删除。edgetunnel 后台会自己处理 UUID 和域名。 ### 第 5 步:开启 GitHub Pages 与 Actions 1. 进你 fork 的仓库 → Settings → Pages,Source 设为 **GitHub Actions** 2. 进 Actions 页,若提示启用 Actions 就点启用 3. 手动触发一次:Actions → VPN Gate Node Check → Run workflow → Run workflow 4. 等它跑完(约 1 分钟),看到绿色 ✓ 即成功 ### 第 6 步:确认产物 跑完后,你的站点地址是: ~~~text https://你的GitHub用户名.github.io/仓库名/nodes.txt ~~~ 浏览器打开,能看到一堆 `优选域名:443#国家-住宅-XX …` 的行,就说明全部打通了。 --- ## 二、使用教程(URL 自动轮换,一次配置永久生效) 1. 进 edgetunnel 后台(你的域名/admin),找到「自定义优选IP」文本框 2. 粘贴**一行网址**: ~~~text https://你的GitHub用户名.github.io/仓库名/nodes.txt ~~~ 3. 点保存 4. 客户端刷新订阅 → 每次刷新 edgetunnel 都重新拉取一次 nodes.txt,节点自动更新 > 原理:`nodes.txt` 是纯节点行版本(无注释头),每行 `入口域名:443#国家-住宅-01$sstp://vpn:vpn@节点:端口`。edgetunnel 下次生成订阅时会 fetch 这个网址、逐行解析成优选入口 + 链式代理指令。你只填一次,之后节点每 30 分钟自动换、零手动。 --- ## 三、如何更换优选域名 入口地址用的是「优选域名」,决定客户端连 Cloudflare 用哪个 IP、稳不稳。 ### 在哪个文件改 - 文件:vpngate.py - 位置:`EDGE_HOSTS