剪藏#剪藏

CloudFlare自建长久自用节点(自用) - 开发调优 / 开发调优, Lv2 - LINUX DO

2025 年 5 月 21 日1 分钟
分享Twitter / XTelegram微博

相信不少佬友都用过BPB面板,一段时间这成为最方便的上网方式,但是后来被CF封杀了。

今天我就再分享一个新方法,让各位佬友都拥有属于自己的BPB面板,不再需要自己去购买机场,也不需要到处寻找节点。

1、打开Github,新建一个库,库的名称可以随便起,只要不带BPB就行

2、在.github/workflows/ 文件夹下,创建一个.yml文件(文件名可自定义),并把下面的代码拷贝到其下,提交

JAVASCRIPT
name: Auto Update Worker

on:
  push:
    branches:
      - main
  schedule:
    - cron: "0 1 * * *" # 每天凌晨1点运行
  workflow_dispatch:
    inputs:
      force_update:
        description: '是否强制更新(忽略版本检查)'
        required: false
        default: 'false'

permissions:
  contents: write

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - name: 检出仓库
        uses: actions/checkout@v4

      - name: 设置环境
        run: |
          echo "REPO_URL=https://api.github.com/repos/bia-pain-bache/BPB-Worker-Panel/releases" >> $GITHUB_ENV
          echo "TARGET_FILE=worker.zip" >> $GITHUB_ENV

      - name: 检查并更新 Worker
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 使用 GitHub Token 认证
        run: |
          # 日志函数
          log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1"; }

          log "开始检查更新..."

          # 获取本地版本
          LOCAL_VERSION=$(cat version.txt 2>/dev/null || echo "")
          log "本地版本: ${LOCAL_VERSION:-无}"

          # 获取最新 Release
          log "获取最新 Release 信息..."
          RESPONSE=$(curl -s --retry 3 -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3+json" "$REPO_URL")
          if [ $? -ne 0 ]; then
            log "ERROR: 无法访问 GitHub API"
            exit 1
          fi

          TAG_NAME=$(echo "$RESPONSE" | jq -r '.[0].tag_name')
          DOWNLOAD_URL=$(echo "$RESPONSE" | jq -r '.[0].assets[] | select(.name == "'"$TARGET_FILE"'") | .browser_download_url')

          if [ -z "$DOWNLOAD_URL" ] || [ "$DOWNLOAD_URL" == "null" ]; then
            log "ERROR: 未找到 $TARGET_FILE"
            exit 1
          fi
          log "最新版本: $TAG_NAME"

          # 判断是否需要更新
          FORCE_UPDATE=${{ github.event.inputs.force_update || 'false' }}
          if [ "$LOCAL_VERSION" = "$TAG_NAME" ] && [ "$FORCE_UPDATE" != "true" ]; then
            log "已是最新版本,无需更新"
            exit 0
          fi

          # 下载并更新
          log "下载 $TARGET_FILE..."
          wget -q -O "$TARGET_FILE" "$DOWNLOAD_URL"
          log "
JAVASCRIPT
压 $TARGET_FILE..."
          unzip -o "$TARGET_FILE"
          rm "$TARGET_FILE"
          echo "$TAG_NAME" > version.txt
          log "更新完成,新版本: $TAG_NAME"

      - name: 提交更改
        if: success() # 仅在更新成功时提交
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "🔄 自动同步 Worker 版本: ${{ steps.check_update.outputs.tag_name || '未知' }}"
          commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"

3、点开Actions看是否自动部署成功

4、打开CF,创建一个Pages,连接到刚创建的库,点击部署,再点击保存部署,等待部署成功

5、点击设置,绑定一个KV空间,名称只要不涉及BPB就行(记得kv要小写)

6、再点开环境变量,添加UUID(注意大小写)

7、继续添加变量,添加PROXY_IP,可以用下面这个网址中搜到的地址添加,用小写逗号分隔

https://www.nslookup.io/domains/bpb.yousef.isegaro.com/dns-records/

8、继续添加变量,添加TR_PASS,一定要填写大小写数字加特殊字符,不用管能不能记住

9、添加一个自定义域名,激活域

10、回到pages,点击重试部署

11、将自定义域名复制到浏览器,回车看到这个页面,就算正常了

12、在域名后添加 /panel,首先需要设置密码

13、重新登录

14、打开主页面后,显示如下

15、点开第一项Vless-Trojan,把Fake DNS,设置为Enabl;在Clean IP中用下面这个地址添加多个适合自己网络的IP,每个IP回车再添加新的,可以添加多个,下方的IPV6可选也可以不选。

16、协议和端口也可以根据自己的需要修改

17、点击下方的Apply Setting。如果弹出下方窗口就说明已经成功了

18、点击Subscriptions-Configs,然后在下方适合的订阅链接或者二维码

我用的是V2rayN,直接导入订阅链接,更新即可

以上就是BPB面板的部署过程,我想给感兴趣部署的佬友几个建议:

1、首先,不要把这个部署分享给其他人用,尽量自用,防止被封禁;

2、在代理IP中可以只选用自己希望的地区,比如美国、新加坡、香港等,这样IP就会固定在这个地区;

3、一定一定不要在自己的设置过程中出现BPB这个敏感词。

如果有任何疑问,可以在下方留言讨论…

之前bpb作者不是还在项目里面留漏洞么(貌似是故意要留

那就很好玩了,双开!(EdgeTunnel和BPB Panel)

周末被客户留在了广州,约着今晚去吃蛇羹!现在时间还早,就在宾馆写个佬友可能用的着的东西

佬友给力!

风佬太强了,干货

我特意写了,一定要避开的关键词。我已经稳定运行俩月了,今天才写的这个分享

感谢大佬!

风佬厉害

为啥我的Actions报错了

原文地址: https://linux.do/t/topic/656503

相关文章