Epeius批量部署:一次性管理多个Cloudflare Workers
Epeius是一款基于Serverless架构的Trojan部署工具,通过Cloudflare Workers实现高效、灵活的代理服务。本文将详细介绍如何利用Epeius实现多个Cloudflare Workers的批量部署与管理,帮助用户快速搭建稳定可靠的代理服务。
🚀 为什么选择Epeius批量部署?
在当今云原生时代,Serverless架构以其低成本、高弹性的优势成为开发者首选。Epeius作为一款专为Cloudflare Workers设计的Trojan部署工具,不仅支持单实例快速部署,更提供了批量管理能力,让你轻松应对多节点需求。
- 零服务器维护:无需管理底层服务器,专注业务逻辑
- 全球边缘网络:利用Cloudflare全球200+节点,实现低延迟访问
- 弹性扩展:自动根据流量调整资源,无需担心容量规划
- 成本优化:按使用量付费,闲置时几乎零成本
📋 准备工作:环境配置与依赖安装
安装Wrangler CLI
Epeius使用Cloudflare官方工具Wrangler进行部署管理,首先确保你的开发环境已安装Node.js和npm,然后执行以下命令安装Wrangler:
npm install -g wrangler
克隆项目仓库
获取Epeius源代码:
git clone https://gitcode.com/GitHub_Trending/epe/epeius
cd epeius
安装项目依赖
npm install
项目依赖信息可查看package.json文件,核心依赖为wrangler ^3.0.0,确保版本兼容性。
🔧 核心配置:wrangler.toml详解
Epeius的部署配置集中在wrangler.toml文件中,默认配置如下:
name = "epeius"
main = "src/worker.js"
compatibility_date = "2024-05-03"
workers_dev = true
关键配置项说明:
name:Worker名称,批量部署时可通过环境变量动态修改main:入口文件路径,指向src/worker.jscompatibility_date:API兼容性日期,确保Worker运行环境稳定
📦 批量部署策略与实现
环境变量注入
Epeius支持通过环境变量动态配置关键参数,主要包括:
SHA224PASS:SHA224加密的密码PROXYIP:代理服务器IP地址
这些参数在src/worker.js中通过以下代码读取:
proxyIP = env.PROXYIP || proxyIP;
sha224Password = env.SHA224PASS || sha224Password
多配置文件方案
为实现批量部署,建议创建多个配置文件,如:
wrangler-dev.toml:开发环境配置wrangler-prod.toml:生产环境配置wrangler-node1.toml:节点1配置wrangler-node2.toml:节点2配置
部署时指定不同配置文件:
wrangler deploy --config wrangler-node1.toml
wrangler deploy --config wrangler-node2.toml
自动化部署脚本
创建一个简单的部署脚本deploy-all.sh:
#!/bin/bash
# 批量部署多个Workers实例
# 节点列表
NODES=("node1" "node2" "node3")
# 循环部署每个节点
for NODE in "${NODES[@]}"
do
echo "部署 $NODE ..."
wrangler deploy --config "wrangler-$NODE.toml"
if [ $? -eq 0 ]; then
echo "$NODE 部署成功!"
else
echo "$NODE 部署失败!"
fi
done
赋予执行权限并运行:
chmod +x deploy-all.sh
./deploy-all.sh
🔍 核心功能解析
WebSocket处理逻辑
Epeius的核心功能在src/worker.js中实现,主要处理WebSocket连接:
async function trojanOverWSHandler(request) {
const webSocketPair = new WebSocketPair();
const [client, webSocket] = Object.values(webSocketPair);
webSocket.accept();
// ... 处理逻辑 ...
}
这段代码创建WebSocket连接对,接受客户端连接并进行后续处理。
Trojan协议解析
Epeius实现了Trojan协议的解析逻辑,位于parseTrojanHeader函数中,负责验证密码、解析目标地址和端口:
async function parseTrojanHeader(buffer) {
// 验证数据长度
if (buffer.byteLength < 56) {
return { hasError: true, message: "invalid data" };
}
// 验证密码
const password = new TextDecoder().decode(buffer.slice(0, crLfIndex));
if (password !== sha224Password) {
return { hasError: true, message: "invalid password" };
}
// ... 解析地址和端口 ...
}
📝 使用指南:从部署到连接
获取连接链接
部署成功后,访问Worker URL的/link路径即可获取Trojan连接链接:
https://你的worker名称.cloudflareworkers.com/link
链接格式如下:
trojan://用户名@主机:端口/?type=ws&host=主机&security=tls
客户端配置
将获取到的链接导入支持Trojan协议的客户端,如Shadowrocket、Qv2ray等,即可开始使用。
⚡ 性能优化与最佳实践
连接复用
Epeius通过WebSocket实现长连接复用,减少连接建立开销,提升性能:
async function remoteSocketToWS(remoteSocket, webSocket, retry, log) {
let hasIncomingData = false;
await remoteSocket.readable.pipeTo(
new WritableStream({
async write(chunk, controller) {
hasIncomingData = true;
if (webSocket.readyState !== WS_READY_STATE_OPEN) {
controller.error("webSocket connection is not open");
}
webSocket.send(chunk);
},
// ...
})
);
}
错误处理与重试
Epeius实现了完善的错误处理和重试机制,确保服务稳定性:
async function retry() {
const tcpSocket2 = await connectAndWrite(proxyIP || addressRemote, portRemote);
tcpSocket2.closed.catch((error) => {
console.log("retry tcpSocket closed error", error);
}).finally(() => {
safeCloseWebSocket(webSocket);
});
remoteSocketToWS(tcpSocket2, webSocket, null, log);
}
🛡️ 安全注意事项
密码安全
Epeius使用SHA224哈希值验证密码,确保传输安全。修改默认密码的方法:
- 生成自定义SHA224哈希值
- 通过环境变量
SHA224PASS注入,或直接修改src/worker.js中的sha224Password变量
访问控制
建议通过Cloudflare Workers的IP访问控制功能,限制只有授权IP才能访问你的服务。
📊 批量管理与监控
虽然Epeius本身不提供监控界面,但你可以通过以下方式实现批量管理:
- Cloudflare Dashboard:在Cloudflare控制台查看所有Worker实例状态
- API集成:使用Cloudflare API编写自定义管理脚本
- 日志聚合:通过Cloudflare Logs集成第三方日志服务,集中分析多个Worker的运行日志
🎯 总结
Epeius通过Serverless架构实现了Trojan服务的高效部署,而批量部署策略则进一步提升了管理效率和服务可用性。无论是个人使用还是小型团队部署,Epeius都提供了简单、可靠的解决方案。
通过本文介绍的方法,你可以轻松管理多个Cloudflare Workers实例,构建属于自己的分布式代理网络。开始使用Epeius,体验Serverless带来的无限可能!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00