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
查看工具