personal-edge-proxy:打造个人专属的多入口多出口代理边缘节点
> 一个基于 Xray、Hysteria2、REALITY Vision 与 WARP 的多入口多出口个人代理实战配置方案。
在互联网访问日益受限、网络审查与封锁不断升级的今天,个人代理工具早已从“小众极客玩具”变成了“刚需基础设施”。但市面上的代理方案要么是开箱即用的商业 VPN(贵、不透明、可能记录日志),要么是单协议的简单 Xray 配置(脆弱、易被识别、缺乏高可用设计)。
`yding-git/personal-edge-proxy` 这个 GitHub 项目,恰好填补了中间地带——它不是一个“一键脚本”,而是一套**深思熟虑的、可落地的、多协议融合的个人代理边缘节点配置模板**。项目将 Xray 的灵活路由、Hysteria2 的 QUIC 低延迟、REALITY Vision 的抗封锁伪装、Cloudflare WARP 的出口冗余,以及可选的静态 SOCKS5 分流策略组合在一起,形成了一套完整的“边缘代理”解决方案。
## 解决什么痛点?
### 痛点一:单协议单出口,一被封锁就全盘皆输
许多个人用户使用的是单一 VPS + 单一协议(比如只开一个 VMess 或 Shadowsocks)。一旦该协议的特征被识别,或者 IP 被墙,整个代理就瘫痪了。这个项目通过**多入站(multi-inbound)**和**多出站(multi-outbound)**的设计,让流量可以灵活走不同通道,即使某条线路被干扰,其他线路依然可用。
### 痛点二:裸奔的 TLS 流量容易被深度包检测(DPI)识别
传统的 TLS 代理(如常规 Trojan)虽然加密了内容,但 TLS 握手特征明显,且 SNI 字段容易被探测。REALITY Vision 是 Xray 社区近年最强大的抗封锁技术——它通过**伪装成真实网站**(如 `www.microsoft.com`)的 TLS 握手来混淆流量,甚至能模拟出真实的 TLS 指纹(JA3/JA4),让 DPI 设备几乎无法区分这是正常访问还是代理流量。
### 痛点三:出口 IP 单一,容易被目标服务限制
如果你只有一个 VPS 的 IP,那么访问某些对 IP 要求苛刻的服务(如 OpenAl、Netflix、Google)时,很容易被风控。项目引入了 **WARP(Cloudflare 的免费 VPN 服务)作为出口之一**,可以随时切换出口 IP,或者将特定流量(如 ChatGPT)强制走 WARP 出口,绕开 VPS IP 被拉黑的困境。
### 痛点四:配置复杂,文档零散,新手很难组合起来
单独搜 Xray 配置、Hysteria2 配置、WARP 配置,每个都有教程,但要把它们组合成一个**同时支持 TCP/UDP、支持分流、支持多出口**的系统,需要大量的试错。这个项目将这一切整合在清晰的目录结构中,并提供了详细的注释和说明。
## 快速上手:安装与配置示例
项目本身不是二进制程序,而是**配置文件集**。你需要先安装 Xray 核心和 Hysteria2 服务端/客户端。以下是在 Linux VPS 上的典型部署流程:
### 1. 克隆项目
bash
git clone https://github.com/yding-git/personal-edge-proxy.git
cd personal-edge-proxy
### 2. 安装核心依赖
bash
# 安装 Xray(基于官方脚本)
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
# 安装 Hysteria2(基于官方脚本)
bash <(curl -fsSL https://get.hy2.sh/)
### 3. 查看项目结构,了解配置布局
personal-edge-proxy/
├── xray/
│ ├── client.json # 客户端配置(本地运行)
│ └── server.json # 服务端配置(VPS 上运行)
├── hysteria2/
│ ├── server.yaml # Hysteria2 服务端配置
│ └── client.yaml # Hysteria2 客户端配置
├── warp/
│ └── warp.conf # WARP 注册与配置文件
└── scripts/
├── install.sh # 自动化部署脚本(可选)
└── gen_cert.sh # 生成自签名证书(用于 Hysteria2)
### 4. 修改服务端配置(关键步骤)
以 `xray/server.json` 为例,核心配置片段如下(简化后):
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "你的UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverNames": ["www.microsoft.com"],
"privateKey": "你的私钥",
"shortIds": ["abcd1234"]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "socks",
"tag": "warp-out",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000
}
]
}
}
],
"routing": {
"rules": [
{
"type": "field",
"domain": ["geosite:openai"],
"outboundTag": "warp-out"
}
]
}
}
这段配置表明:
- **入站**:VLESS + REALITY Vision,端口 443,伪装成 `www.microsoft.com`。
- **出站**:默认直连(freedom),另有一个 SOCKS5 出口指向本地 WARP 端口(40000)。
- **路由规则**:访问 OpenAI 相关域名时,强制走 WARP 出口。
### 5. 配置 Hysteria2(用于 UDP 低延迟场景)
Hysteria2 的 `server.yaml` 示例:
yaml
listen: :36712
tls:
cert: /etc/hysteria2/server.crt
key: /etc/hysteria2/server.key
auth:
type: password
password: 你的密码
bandwidth:
up: 100 mbps
down: 200 mbps
Hysteria2 的优势在于基于 QUIC 协议,在弱网环境下(如高丢包率的移动网络)表现远优于 TCP 协议。项目将 Hysteria2 作为**备用入站**,与 Xray 的 REALITY 配合,实现 TCP/UDP 全覆盖。
### 6. 配置 WARP 出口
项目提供了 `warp/warp.conf`,你只需运行 `warp-cli register` 并获取 SOCKS5 端口(默认 40000)。之后在 Xray 的 outbounds 中引用该 SOCKS5 即可。
## 核心亮点深度解析
### 1. REALITY Vision:下一代抗封锁技术
REALITY 是 Xray 团队开发的 TLS 伪装技术,它**不需要自己的域名和证书**,而是借用真实网站的证书来完成 TLS 握手。REALITY Vision 进一步优化了加密套件和指纹模拟,使得流量看起来与真实浏览器访问 `microsoft.com` 完全一致。
项目默认使用 `www.microsoft.com` 作为伪装目标,这个选择很聪明——微软的 CDN 遍布全球,流量特征极其普遍,DPI 设备很难从中找出异常。
### 2. 多入口(Multi-Inbound)设计
项目同时配置了 Xray(TCP + REALITY)和 Hysteria2(UDP + QUIC)。这意味着:
- 如果你的网络环境屏蔽了 UDP,你可以走 Xray 的 TCP 入站。
- 如果你的网络环境对 TCP 连接干扰严重(比如丢包率高),你可以走 Hysteria2 的 QUIC。
- 两者共享同一套路由规则,无缝切换。
这种“双栈”设计在移动网络(如地铁、高铁)上尤其有用,因为 QUIC 的抗丢包能力远胜 TCP。
### 3. 多出口(Multi-Outbound)与智能分流
项目提供了至少三个出口:
- **direct**:直连互联网(默认)。
- **warp-out**:通过 Cloudflare WARP 出口(适合访问被 VPS IP 限制的服务)。
- **可选静态 SOCKS5**:比如你可以再配置一个住宅代理出口,用于访问特定地区的内容。
路由规则可以基于域名(`geosite`)、IP(`geoip`)、端口等维度。例如:
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
}
这条规则让国内流量直连,不经过代理,减少延迟。
### 4. 可选的静态 SOCKS5 路由
这个特性非常实用。假设你有一个干净的住宅 IP 代理(比如购买了一个静态住宅 SOCKS5),你可以将其加入 outbounds,并设置规则:所有 Netflix 流量走住宅 IP,所有 OpenAI 流量走 WARP,其他走直连。这种**精细化分流**是商业 VPN 无法提供的。
## 适用场景分析
| 场景 | 推荐配置 | 理由 |
|------|----------|------|
| 个人日常上网(国内+国外) | Xray REALITY + 国内直连规则 | 速度快,抗封锁,延迟低 |
| 访问 ChatGPT / OpenAI API | Xray REALITY + WARP 出口 | 避免 VPS IP 被 OpenAI 风控 |
| 移动网络(4G/5G) | Hysteria2 为主入口 | QUIC 抗丢包,连接稳定 |
| 解锁 Netflix / Disney+ | Xray + 住宅 SOCKS5 出口 | 绕过流媒体区域的 IP 检测 |
| 游戏加速(UDP 场景) | Hysteria2 + 低延迟 VPS | QUIC 天然适合游戏 UDP 流量 |
## 与其他同类项目的对比
### 对比 1:v2rayA / v2rayN 等图形化客户端
这些工具提供了 GUI 和订阅管理,但**本质是单客户端配置**,缺乏服务端多协议整合能力。`personal-edge-proxy` 更像是“服务端+客户端”的完整方案,且配置是手写的、透明的,便于深度定制。
### 对比 2:3X-UI 面板
3X-UI 是一个强大的多协议管理面板,支持 Web 界面操作。但它的问题是**配置生成模板化**,难以实现像“特定域名走 WARP”这样的复杂路由逻辑。而本项目直接面对 JSON/YAML 文件,自由度极高。
### 对比 3:sing-box 配置方案
sing-box 是一个更现代的代理内核,也支持多协议。但 sing-box 的配置语法与 Xray 不兼容,且社区资料相对较少。本项目基于 Xray 和 Hysteria2,这两个项目社区活跃、文档丰富、更新频繁,遇到问题更容易解决。
### 对比 4:商业 VPN(如 Mullvad、ProtonVPN)
商业 VPN 完全托管,无需维护,但**不提供自定义路由**,且所有流量必须经过它们的服务器。对于需要精细控制(比如国内直连、国外代理)的用户,个人方案是唯一选择。
## 潜在挑战与注意事项
1. **维护成本**:你需要自己管理 VPS、证书、WARP 注册。如果 WARP 账号被封,需要重新注册。
2. **REALITY 依赖可信的伪装站**:如果微软封禁了来自你 VPS IP 的 TLS 连接,REALITY 会失效。建议准备多个伪装站域名轮换。
3. **Hysteria2 的证书**:项目默认使用自签名证书,但客户端需要额外配置 `insecure: true` 来跳过验证。如果你有域名,建议使用 Let's Encrypt 免费证书,以获得更好的兼容性。
4. **性能调优**:默认配置可能不是最优的。例如,WARP 的 SOCKS5 端口需要你自己启动 `warp-svc` 并监听,项目文档中对此有说明,但需要你仔细阅读。
## 总结:值得一试的实战级配置
`personal-edge-proxy` 不是一个“傻瓜式”工具,而是一套**高水平的参考实现**。它的价值在于:
- 展示了如何将 Xray、Hysteria2、WARP 三种技术无缝整合。
- 提供了清晰的路由规则示例,让多出口分流变得可操作。
- 代码结构清晰,注释详细,适合作为学习代理配置的进阶教程。
如果你已经熟悉基本的 Xray 配置,但想要构建一个**抗封锁、高可用、可定制**的个人代理边缘节点,这个项目绝对值得你花一小时研究并部署。它不会让你一键起飞,但会让你飞得更稳、更远。
> 项目地址:https://github.com/yding-git/personal-edge-proxy