彻底告别手动!Cloudflare + GitHub 24小时全自动更新住宅IP,一键订阅日韩纯净节点(附避坑指南)

本教程基于最新精简版代码,全程通过网页操作,不需要在电脑上安装任何软件,也不需要敲命令。你只需要有 Cloudflare 账号和 GitHub 账号,按步骤点一点就能完成部署。

📌 你需要准备的:

第一步:部署检测 Worker(CheckSocks5)

检测 Worker 负责验证 SSTP 节点能不能用,必须自己部署一个。全程在网页上完成。

1. 打开 Worker 源码仓库:
https://github.com/lsh8848/cm-Workers-CheckSocks5

2. 点击右上角 Fork,把仓库复制到你的 GitHub 账号下。

3. 进入 Cloudflare 控制台:
https://dash.cloudflare.com/
登录后,点击左侧菜单的 Workers 和 Pages。

4. 点击“创建” → 选择“创建 Worker”。
给 Worker 起个名字,比如 check-sstp,然后点击部署。

5. 部署完成后,点击“编辑代码”。
把编辑器里默认的代码全部删掉,然后打开你 Fork 的仓库,找到 _worker.js 文件,复制全部内容,粘贴到 Cloudflare 编辑器里。

6. 点击右上角“保存并部署”。

7. 部署完成后,你会得到一个 Worker 域名,格式类似:
https://check-sstp.你的用户名.workers.dev
把这个域名记下来,后面第五步要用,每个人部署的域名都不一样。

⚠️ 提示:如果部署后访问 Worker 域名能看到检测页面,说明部署成功。这个 Worker 没有内置密码,建议自己用的时候不要公开分享。

第二步:部署 edgetunnel(核心使用端,获取 UUID 和域名)

edgetunnel 是 VLESS 代理 + 链式代理工具,你的节点最终通过它来使用。注意:UUID 和节点域名是在这一步配置和获取的,不需要写在 vpngate.py 里!

1. 打开 edgetunnel 源码仓库:
https://github.com/cmliu/edgetunnel

2. 在 Cloudflare 控制台再创建一个新的 Worker。
名字随便起,比如 edgetunnel,点击部署。

3. 进入“编辑代码”,把默认代码全部删掉。
打开 edgetunnel 仓库的 _worker.js 文件:
https://github.com/cmliu/edgetunnel/blob/main/_worker.js
复制全部内容,粘贴到 Cloudflare 编辑器,然后点击保存并部署。

4. 在 Worker 的“设置”选项卡中,添加环境变量。
找到 变量 → 添加变量:
- 变量名称:ADMIN
- 值:你的管理员密码(自己设一个)
点击保存。

5. 绑定 KV 命名空间。
在 绑定 选项卡中选择 添加绑定 + → KV 命名空间 → 添加绑定:
- 变量名称:KV
- 选择一个已有的命名空间或创建一个新的
点击添加绑定。

6. 绑定自定义域(可选,推荐)。
在 Worker 的 触发器 选项卡,点击 添加自定义域,填入你已转入 CF 的域名,例如 vless.你的域名.com,等待证书生效。

7. 访问你的域名 /admin,输入管理员密码登录后台。
在后台首页记下你的 UUID 和 节点域名,后面要用。

💡 说明:edgetunnel 后台的“自定义优选IP”框后面会用到,用来填我们生成的 nodes.txt 地址。

第三步:Fork 本项目仓库

小白可以下载此代码,工作流自动更新分24小时和2小时自动更新
下载地址一:【点此跳转】
下载地址二:【点此跳转】

1. 打开项目仓库:
https://github.com/hezhanleiok/gate

2. 点击右上角 Fork,把整个仓库复制到你的 GitHub 账号下。

3. 进入你 Fork 后的仓库,确认根目录有这些文件:
- vpngate.py(Python 主脚本)
- requirements.txt(依赖文件,内容应为 requests)
- .github/workflows/vpngate.yml(工作流文件)

第四步:修改 vpngate.py 文件(一处)

在仓库中打开 vpngate.py,点击右上角铅笔图标进入编辑模式。你只需要修改一处:

搜索 `NODES_URL`(大约在代码第 307 行):

NODES_URL = os.environ.get("NODES_URL", "https://YOUR_GITHUB_USERNAME.github.io/gate/nodes.txt")

把 YOUR_GITHUB_USERNAME 换成你自己的 GitHub 用户名,例如:

NODES_URL = os.environ.get("NODES_URL", "https://hezhanleiok.github.io/gate/nodes.txt")
⚠️ 重要说明:精简版 vpngate.py 中没有 EDT_UUID 和 EDT_DOMAIN 这两个变量。因为这两个参数属于 edgetunnel 本身,在第二步你已经配置好了。你只需要把 nodes.txt 的 URL 填入 edgetunnel 后台,edgetunnel 会自动用它的 UUID 和域名去生成能用的节点,你完全不用担心无法使用!

修改完成后,点击页面底部的 Commit changes 保存。

第五步:配置 Secret 密钥与修改工作流文件

为了防止你的检测 Worker 域名公开后被其他人盗用刷爆额度,我们将检测域名保存在 GitHub Secrets(隐藏密钥)中,让工作流自动读取。

1. 添加 GitHub Secret(配置隐藏变量)

  • 进入你 Fork 后的仓库,点击顶部菜单的 Settings(设置)。
  • 在左侧边栏依次点击 Secrets and variables → Actions。
  • 点击右上角的绿色按钮 New repository secret:
    • Name(名称):填入 DOMAIN
    • Secret(内容):填入你在第一步得到的完整检测 Worker 链接(例如:https://check-sstp.你的用户名.workers.dev/check?sstp=vpn:vpn@)
  • 点击 Add secret 保存。

2. 修改工作流文件(.github/workflows/vpngate.yml)

在仓库中打开 .github/workflows/vpngate.yml,点击右侧铅笔图标进入编辑模式。

第 1 处【必改项 - 核心密钥】:

找到 CHECK_WORKER: 大概在35行,修改为调用刚添加的 Secret:

修改前(明文暴露域名):

CHECK_WORKER: "https://你的域名/check?sstp=vpn:vpn@"

修改后(通过 Secret 安全读取):

CHECK_WORKER: ${{ secrets.DOMAIN }}

第 2 处【可选项 - 日志站点展示】:

这一步的作用仅仅是在 GitHub Actions 运行完成后的控制台日志尾部打印一行提示信息,改不改完全不影响脚本和节点的自动化抓取运行。如果你希望日志里显示的 URL 对应你自己的 GitHub 账号,大概再71行,可以顺手修改:

修改前:

- name: Show site URL
  run: 'echo "site: https://仓库用户名.github.io/gate/ ..."'

修改后:

- name: Show site URL
  run: 'echo "site: https://你的GitHub用户名.github.io/gate/ ..."'

修改完成后,点击页面右上角的 Commit changes 保存。

第六步:启用 GitHub Pages

1. 进入你的仓库 → Settings → Pages。

2. 在 Build and deployment 下:

  • Source 选择 GitHub Actions
  • 目录选择 /public(如果工作流中指定了路径)

3. 保存后,等待第一次工作流运行完成,你的页面就会发布在:
https://你的GitHub用户名.github.io/gate/

第七步:运行自动化流程

手动运行(推荐首次使用):

  1. 进入你的仓库 → Actions 标签页。
  2. 左侧选择 VPN Gate Node Check 工作流。
  3. 点击右侧 Run workflow → Run workflow,即可手动触发一次检测和部署。

自动运行(可选):

如果你希望 GitHub 自动定时更新,需要在工作流文件中修改 on: 下方的 cron 表达式。下面我为你列出了几种常见的时间间隔:

运行频率 cron 表达式 小白说明
每 30 分钟 */30 * * * * 每小时的 0 分和 30 分各跑一次
每 60 分钟(1 小时) 0 * * * * 每小时的 0 分跑一次
每 4 小时 0 */4 * * * 每 4 小时跑一次(0点、4点、8点...)
每 12 小时 0 */12 * * * 每 12 小时跑一次(0点和12点)
每 24 小时(每天一次) 0 0 * * * 每天 0 点(午夜)跑一次

完整的工作流定时写法如下(这里以 每 60 分钟 为例,你只要把 cron 后面的内容替换成表格里你想要的即可):

on:
  schedule:
    - cron: "0 * * * *"
  workflow_dispatch:

保存后,GitHub 就会按照你设置的时间自动运行工作流了。

第八步:验证部署结果

工作流运行完成后,访问你的 GitHub Pages 地址,应该能看到节点列表页面。

同时,仓库的 public/ 目录下会生成 3 个文件:

文件 用途
data.json 节点检测结果的原始数据
index.html 展示页面(GitHub Pages 的首页)
nodes.txt 纯节点行,填 URL 自动轮换(最核心)

第九步:在 edgetunnel 后台配置自动轮换

  1. 登录 edgetunnel 后台(https://你的域名/admin)。
  2. 找到 自定义优选IP 输入框。
  3. 填入你的 nodes.txt 的网址:
    https://你的GitHub用户名.github.io/gate/nodes.txt
  4. 保存。edgetunnel 每次生成订阅时会自动拉取这个文件,解析 $sstp:// 并套上链式代理。
  5. 在你的客户端(v2rayN、Clash 等)中订阅 edgetunnel 的订阅地址,即可使用自动轮换的 SSTP 节点。

常见问题

Q:为什么 vpngate.py 里没有 UUID 和域名?会影响使用吗?
A:完全不会影响。UUID 和域名是 edgetunnel 自身的配置,你在第二步已经在 edgetunnel 后台设置好了。vpngate.py 只负责提供节点货源(nodes.txt),edgetunnel 会自动用它的 UUID 和域名对节点进行封装,最后输出给你客户端订阅的。所以这两项不需要写在 vpngate.py 里。

Q:Worker 域名怎么找?
A:在 Cloudflare 控制台 → Workers 和 Pages → 点击你创建的 Worker → 右侧可以看到域名。

Q:工作流运行失败怎么办?
A:进入 Actions 标签页,点击失败的那次运行,查看日志中的错误信息。常见原因:CHECK_WORKER 域名填错、requirements.txt 缺失、Python 文件名不对。

Q:edgetunnel 的 UUID 和域名在哪里看?
A:登录 edgetunnel 后台(https://你的域名/admin),在后台首页就能看到。

Q:需要花钱吗?
A:不需要。Cloudflare Workers 免费版每天有 10 万次请求额度,GitHub Pages 和 GitHub Actions 对公开仓库完全免费。

🎉 恭喜!按以上步骤操作完成后,你就拥有了一套全自动的 VPN Gate SSTP 节点检测与分发系统,每 30 分钟自动更新,客户端订阅后自动轮换节点。

文章评论 (4)

  1. 匿名
    2026年10月18日 21:21
    已经失效
  2. 匿名
    2026年10月8日 06:10
    为什么cloudflare老是封我的域名
  3. 匿名
    2026年10月6日 11:09
    写的太好了,感谢分享