网络基础设施 · 给协作团队的架构速览

团队跨境网络的
双层中转骨架

一台入口 VPS 终结每个人的加密隧道,透明转发到各自独占的美国 ISP 出口——每人一个稳定、隔离、可单独吊销的出口 IP,而出口凭据永不落到客户端

// 面向需要接入或理解本网络的协作团队 · 全脱敏架构口径,不含任何 IP 与凭据

搬瓦工 · LA 入口 DECODO ISP ×10 出口 VLESS-REALITY HYSTERIA2 · UDP CLASH / SHADOWROCKET 双机热备 15-MIN 深度巡检
0
入口机 · 热备
0
独占出口 IP
0
协议梯队
0min
巡检间隔
SCROLL / 向下滚动
01
Two-Tier Topology

入口终结,出口独占

网络拆成两层,各管一件事。入口层负责把国内进来的加密流量解开、按人分流;出口层是一排各自独立的美国 ISP 静态 IP。中间用一条按身份精确匹配的路由把两层缝在一起——一个 UUID 死绑一个出口 IP

终端
同事 A
Clash / Shadowrocket
同事 B
扫一张二维码卡
同事 …
只看到一个节点
入口层 · 搬瓦工 VPS
xray 路由
按 UUID 分流
加密终结 · 一台入口 = 全员
出口层 · Decodo ISP
出口 IP · A
独占 · 美国 ISP
出口 IP · B
独占 · 美国 ISP
… ×10
一人一个 · 不共享
入口层▲ 搬瓦工 LA

入口 VPS

xray / 3x-ui · 机房线路

平时只做两件事——终结 VLESS / UDP 加密握手,再按客户端 UUID 把流量分流到对应出口。机房 IP 本身不直接对外做业务出口

VLESS-Reality · Hysteria2 · CDN 兜底
出口层◈ Decodo ISP

10 个独占 IP

端口化 · 挂住宅 ISP ASN

一排挂住宅 ISP ASN(AS6079 RCN / AS5650 Frontier)的美国静态 IP,每个 IP 一个专用端口。每人独占一个,出口零共享。

10 IP · 不限带宽 · 全美国
中转层✦ xray routing

1:1 静态绑定

user(UUID) → outbound

按客户端 UUID 精确匹配到唯一出口,HTTP CONNECT 转发。10 条路由 1:1 恒等,靠守卫每 15 分钟校验,绝不串。

身份路由 · 出口零漂移
Design

机房 IP 只做入口、ISP IP 才做出口——这是整套设计的核心。直接拿机房 IP 出去会被平台风控秒拒;把出口换成挂住宅 ASN 的静态 IP,既稳定、又能一人一个单独吊销。

02
Request Path

一次请求,从手机到美国

五段接力,每一段职责单一、可独立替换。客户端全程只认一个「普通节点」,看不到后面任何出口细节。

终端
客户端
手机 / 电脑上的 Clash 或 Shadowrocket,扫一张二维码卡,只看到一个 VLESS-Reality 或 Hysteria2 节点
隧道
加密
流量经 Reality(TCP)Hysteria2(UDP/QUIC)加密,穿过防火墙抵达入口 VPS
入口
VPS · xray
xray 读这条隧道的 UUID 查路由表,匹配到此人专属的出口通道
中转
转发
HTTP CONNECT 把流量交给对应的 Decodo 独占端口
出口
美国 ISP
从此人独占的美国 ISP IP 出网 → 目标站点看到的是一个稳定的住宅级美国出口

// 关键:客户端全程只知道一个节点——出口 IP、端点、账号密码全部在服务端,永不下发到客户端。

03
Per-User Isolation · Delivery

每人一条腿,互不影响

交付模型是「一人一张卡」。每个同事拿到一个独立 UUID / 密码,封装成一张二维码卡片,扫码即用——出问题时,只影响一个人。

🎫

ONE UUID / PERSON一人一 UUID

每个出口对应一个独立 UUID / 密码,单独下发、单独吊销。出事只波及一个人,不牵连全组。

🕶️

OPAQUE EGRESS客户端看不到出口

同事的配置里不出现出口账号 / 端点 / 出口 IP,只看到一个普通 VLESS 节点。

🔗

STATIC 1:1死绑固定出口

10 个 UUID 死绑 10 个固定出口 IP,IP 粘性是契约属性——广告养号 / 账号管理需要稳定出口。

♻️

REVOKE / ROTATE撤销 · 换人 · 加人

面板加删一个 client + 一条路由规则即可,其他人零感知,不影响在用的隧道。

🖼️

QR CARD二维码卡片交付

每人一张 PNG 卡(节点二维码 + 出口标识)。换 IP 时只重发受影响的那几张,其余人不动。

🧭

ZERO DRIFT出口零漂移

双入口共用同一 UUID,选路是客户端的事;服务端只认 UUID,出口 IP 恒定不变。

为什么坚持 1:1 静态绑定

用 balancer / 池会更省事,但会毁掉出口稳定性——广告养号、平台账号管理最怕出口 IP 跳变。稳定 > 峰值速度,这是刻进契约的取向。

04
Protocol Journey · The Hard Part

为什么最后走了 UDP

这套网络的协议选型不是一开始就对的,而是被防火墙逼出来的。下面是真实走过的弯路,和那个把一切翻转的发现。

TCP · VLESS-Reality 直连✕ 握手通过,数据被掐死
防火墙 · 掐 TCP 数据面
UDP · Hysteria2 / QUIC✓ 同一台机器,直接放行 → 秒开
防火墙 · 放行 UDP
VLESS-Reality 直连
起点。443 端口 Reality 伪装。国内「显绿但打不开」——握手过、数据被掐。
❌ 失败
CDN 兜底路径
走 CDN 回源,能用但慢——anycast 甩到远端 PoP,延迟反而更高,只能当备路。
⚠️ 能用但慢
去 Vision / 换端口 / 换协议变体
以为是协议细节,逐个试,全部无效——一直在 TCP 层打转。
❌ 失败
花钱换优质线路(CN2 GIA)
买一台优质线路新机,同机房 ASN → 同命运,裸 IP TCP 还是打不开。
❌ 失败
Hysteria2 · UDP
换传输层,装上一次搞定——秒开、极快。真相浮出水面。
✅ 突破
The Insight

3 次以上补丁全部失败 = 不是配置问题,是架构 / 线路层问题。真相:防火墙对这类机房 IP「专掐 TCP 数据面、放行 UDP/QUIC」。换传输层(TCP→UDP)才是根治,不是换 IP、换端口、换协议变体、换线路。

🚀

PRIMARY主力 · Hysteria2(UDP)

每个出口一个独立 UDP 端口,per-user 出口不变。抗 TCP 封锁的主力线路。

☁️

FALLBACK兜底 · VLESS-WS / CDN

走 CDN 回源,UDP 被 QoS 限速时的 TCP 备路。

🔒

RESERVE保留 · VLESS-Reality

443 直连保留,线路状态好时仍可用。

🛡️

HARDENING加固待选 · obfs 混淆

2024 起防火墙会解析 QUIC 首包 SNI,裸 QUIC 有识别风险,Salamander 混淆层待启用。

// 给国内同事的卡绝不能用 failover 自动组——客户端按「绿不绿」选路,死掉的 TCP 直连永远显示绿,会一直选中它。必须是单线、能真过数据的节点。

05
Dual-Machine Hot Standby

两台机器,互为备份

单机 = 单点。第二台机器是第一台的完整镜像——因为出口账号不绑源 IP,两台机出去是同一批 IP,切换零改动。

🖥️🖥️

MIRROR双机镜像

旧机(QNET 线)+ 新机(CN2 GIA 线),同一套出口配置。出口认证不绑源 IP → 两机出口 IP 完全一致

PRIMARY / BACKUP主备分工

一半出口主走新机、一半备用旧机;跨机 failover 卡放进客户端 URLTest 组,快的做首选、另一台兜底

🔁

ZERO-COST MOVE切换零改动

迁移 = 复制配置。要换机 / 加机不影响出口 IP,也不用给全员重发卡。

⚠️

THE TRAPfailover 卡的陷阱

客户端 URLTest 按握手绿不绿选路,死节点永远绿——给国内同事的卡宁可单线,不用会「选中死腿」的自动组。

RTO · 恢复时间

单供应商故障时,切 failover 组的恢复时间 ≈ 5 分钟;真正的韧性来自「自建切换层 + 健康检查」,而不是指望某一家供应商永不出事。

06
Client Terminals

承接的终端

一套服务端,多种客户端。选客户端第一原则是「用 NetworkExtension 方案的」——老一代特权 helper 方案在新版 macOS 上已经死了。点下面的标签切换查看。

WindowsClash Verge

国内同事主力客户端。导入 vless / hysteria2 节点后,用 URLTest 组自动选路。

给同事的是单线卡,不放会「选中死腿」的自动 failover 组(见协议进化章的陷阱)。

macOS · M 系列Shadowrocket

M 系列 Mac 走 Catalyst 运行 iOS 版。ClashX Meta 在新版 macOS(Tahoe)上因特权 helper 机制彻底失效——不要在它上面耗时间。

替代顺位:Shadowrocket / Mihomo Party / Stash——都是 NetworkExtension 方案。

iOSShadowrocket

扫二维码卡即用,最省事的终端。

切换默认节点后隧道不会自动重连,必须主开关关 → 开,新节点才生效;状态错乱时整个退出重开。

运维 / 测试sing-box

服务端改路由后的验证客户端。内置 urltest 自动 failover,比客户端手动选路更可靠,用来 pin 每个出口 IP 是否正确。

客户端侧有四条反复踩到的坑——都是「看起来通、其实没通」这一类,写死供接入排障:

「绿」不等于「通」

客户端的连通性测试只测 TCP 握手,绿色延迟数字 ≠ 真能过数据。唯一可信验证:切到节点后 curl 看出口 IP。

🔄

切节点要重启隧道

换默认节点后隧道不会自动重连,必须主开关关 → 开;严重时整个退出重开客户端。

🕳️

fake-DNS 会劫持

客户端默认把没匹配规则的域名映射到 198.18.x.x 虚拟段,测自定义域名要喂真实 IP,否则出现假通 / 假断。

🌐

Global Routing 会架空规则

全局代理模式会忽略所有 DIRECT/PROXY 规则,把该直连的国内站也推去美国 → 排障第一步先看这个开关。

07
Monitoring · Operations

挂了要立刻知道

每个后台守卫都落两个指标——自身存活心跳(脚本静默死掉可检测)+业务 delta(跑了但出口不对也告警)。「退出码 0」不等于「业务有效」。

💓

三层深度巡检

每 15 分钟校验 ① 10 条路由身份恒等(防「忘改回 1:1」)② 每个出口 IP pin 正确 ③ HTTP 200。只在状态翻转时推告警,不刷屏。

🚨

告警分类 SOP

blip(≤15min 自愈)不处置 / 硬故障(网关持续 503 >1h)带时间戳报修 / 晚高峰拥塞先攒数据——按签名快速决策,不一惊一乍。

📟

带外运维通道

本机代理隧道偶尔会劫持到 VPS 的 SSH,改用 VPS 商的 REST API 带外执行命令,SSH 失联也能运维改配置。

🔔

飞书告警推送

翻转即推告警群(红牌故障 / 绿牌恢复 / 蓝牌上线),推送结果落日志可回溯——避免「通知丢了就查不到」。

最贵的一课

供应商的局部故障 ≠ 你的爆炸半径。一人一独占 IP、没有 failover 时,被砸中的那个人就是 100% 全断整个时长。换供应商治不了(每家都有局部故障),90% 的收益在自建的切换层 + 健康检查——而且几乎免费。

08
Design Principles · Stack

五条刻进契约的取向

把两个月踩过的坑压成几条可复用的判断——给接手 / 复刻这套网络的人。

出口稳定 > 峰值速度——契约 IP 静态 1:1,不为快换成池。

TCP 死了先试 UDP——别在 TCP 层连打补丁,3 次失败就停手换传输层。

机房 IP 直连救不活——是 IP 信誉问题,要么走 UDP、要么换非机房出口。

换供应商治不了局部故障——双供应商 failover + 自建健康检查才是解。

客户端「绿」不可信——服务端 pin 出口 IP 才算数。

技术角色
入口 VPS搬瓦工 LA · xray / 3x-ui加密终结 + 路由分流
出口Decodo ISP Dedicated ×10独占美国 ISP 静态 IP
主力协议Hysteria2(UDP / QUIC)抗 TCP 封锁
备用协议VLESS-WS over CDNTCP 兜底
保留协议VLESS-Reality直连
中转xray routing(UUID → 出口)1:1 静态绑定
客户端Clash Verge / Shadowrocket / sing-boxWindows / Mac·iOS / 测试
双机旧机 QNET + 新机 CN2 GIA热备镜像
监控15min 深度巡检 + 双指标心跳飞书翻转告警
带外运维VPS 商 REST APISSH 失联备用
一句话总括:一台入口 VPS 把每个人的加密隧道解开、按 UUID 分流到各自独占的美国 ISP 出口;协议被防火墙逼着从 TCP 走到 UDP(Hysteria2);双机热备 + 每 15 分钟深度巡检兜住可用性——难点全在绕过 TCP 封锁守住每人出口的稳定与隔离