之前在 Cloudflare Workers 上部署的 Trojan 已经可以稳定运行,之后发现了 Epeius 这个全新修改版的 Trojan,版本中支持了优选IP、代理节点功能,可以提供更好的速度体验,所以抽时间部署体验了一下。
代码修改
看了部署文档,发现一个环境变量 SUB 如果改为 url 的参数会更灵活,这个参数将会使用其他大佬筛选好的节点地址,将单个节点变为多节点,使用体验更优。毕竟优选的订阅很多,每次修改重新部署都是不小的成本,通过 url 参数传入的方式可以一劳永逸的解决。
从_worker.src.js
中找到如下行:
javascript
sub = env.SUB || sub
修改为如下内容:
javascript
const subParameterValue = url.searchParams.get(”sub“);
const decodedSubParameterValue = subParameterValue ? decodeURIComponent(subParameterValue) : null;
sub = decodedSubParameterValue ||env.SUB || sub;
Github Action 部署
- 在自己 Fork 的仓库中将要设置的变量添加到
Settings - Secrets and variables - Actions
内的Repository secrets
下。
toml
CF_API_TOKEN=#Cloudflare Workers Token
PROXYIP=proxyip.fxxk.dedyn.io #修改为适合的,可以通过原项目找到
RPROXYIP=true #通过订阅器中的PROXYIP代替上一个参数内容
PASSWORD=123456 #用于访问的密码设置
SHA224PASS=f8cdb04495ded47615258f9dc6a3f4707fd2405434fefc3cbf4ef4e6 #哈希加密后的PASSWORD(SHA224),要和PASSWORD对应
- 仓库根目录新建 wrangler.toml 文件,内容填写如下:
toml
name = "epeius" #Cloudflare Workers项目名称,不要和已有项目重复
main = "_worker.src.js"
node_compat = true
compatibility_date = "2024-06-05"
- 在仓库中创建
.github/workflows/deploy.yml
文件
yml
name: deploy
on:
push:
branches:
- input
repository_dispatch:
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to Cloudflare Workers
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
secrets: |
PROXYIP
RPROXYIP
SHA224PASS
PASSWORD
env:
PROXYIP: ${{ secrets.PROXYIP }}
RPROXYIP: ${{ secrets.RPROXYIP }}
SHA224PASS: ${{secrets.SHA224PASS}}
PASSWORD: ${{secrets.PASSWORD}}
提交后,Github 就会完成 Cloudflare Workers 项目的部署,后续更新代码也会重新部署。
- 在 Cloudflare Workers 的 epeius 项目中绑定域名(此步非必需,要看使用的网络环境)。
- 在 Surge 中添加如下配置,按照实际修改后使用。
toml
CML = select, policy-path=https://epeius.example.workers.dev/123456?surge&sub=trojan.fxxk.dedyn.io, update-interval=0, no-alert=0, hidden=0, include-all-proxies=0
TC = select, policy-path=https://epeius.example.workers.dev/123456?surge&sub=altrojan.filegear-sg.me, update-interval=0, no-alert=0, hidden=0, include-all-proxies=0
其中 SUB 来自 Telegram Channel。
Surge中使用
大量优选的节点可以选择使用,YouTube 无压力。