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带来的无限可能!
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00