基于双进程 Sidecar 架构,集成 WebSocket 隧道传输、智能分流引擎、多节点负载均衡、 零拷贝数据管道于一体的高性能代理解决方案
Xlink 是一套完整的代理隧道解决方案,由 Windows 客户端、Go 语言内核、 Cloudflare Worker 服务端三个核心组件构成,实现安全、高效、智能的网络代理服务。
v19.9 Genesis Final 是 Xlink 项目的里程碑版本,标志着架构设计的完全成熟。 该版本采用双进程 Sidecar 模式,将智能分流(Xray)与高速传输(Xlink Core) 完美分离,既保证了功能的丰富性,又确保了核心传输层的极致性能。
Xray 负责智能分流与规则匹配,Xlink Core 专注高速 WebSocket 隧道传输。 两个进程协同工作,职责分离,互不干扰,实现 1+1 > 2 的效果。
支持最多 50 个节点的服务器池,提供 Random(随机)、Round-Robin(轮询)、 Hash(会话保持)三种负载均衡策略,智能分配流量。
支持关键词、域名、正则表达式多种匹配方式。结合 Xray 的 GeoSite/GeoIP 数据库, 实现国内直连、广告过滤、BT 防护等高级功能。
基于 WebSocket 协议建立隧道,天然支持 CDN 加速与 TLS 加密。 完美穿透各类防火墙和网络限制,伪装成正常 HTTPS 流量。
服务端代码直接运行在 Cloudflare Workers 边缘网络,利用全球 300+ 数据中心, 零服务器成本,极低延迟,无限弹性扩展。
Token 鉴权、配置文件 DPAPI 加密存储、SNI 伪装、TLS 加密传输。 从客户端到服务端,全链路安全防护,保障数据隐私。
Xlink 采用经典的客户端-内核-服务端三层架构,每一层职责明确, 通过标准化接口通信,实现松耦合、高内聚的系统设计。
| 组件 | 技术栈 | 代码规模 | 主要职责 | 运行环境 |
|---|---|---|---|---|
|
🖥️
Windows 客户端
|
C / Win32 API | ~2000 行 | GUI 界面、配置管理、进程控制 | Windows 7+ |
|
⚙️
Xlink Core 内核
|
Go / gorilla/websocket | ~1200 行 | 代理服务、隧道传输、负载均衡 | 跨平台 |
|
☁️
CF Worker 服务端
|
JavaScript / Workers API | ~300 行 | 协议解析、TCP 转发、鉴权 | Cloudflare Edge |
|
🔀
Xray 分流引擎
|
Go / V2Ray Core | 外部依赖 | 智能分流、GeoSite/GeoIP 规则 | 可选组件 |
Xlink 从架构设计到代码实现,处处体现对性能和安全的极致追求
服务端使用 Cloudflare Workers 原生 pipeTo() API,
数据在 V8 引擎底层直接流动,JavaScript 完全不参与数据搬运,
达到物理性能天花板。
支持关键词、完整域名、正则表达式三种匹配模式。 结合 Xray 的 GeoSite/GeoIP 数据库,可实现国内直连、 广告过滤、BT 流量屏蔽等高级路由策略。
单节点配置支持最多 50 个服务器组成节点池, 提供三种负载均衡策略,支持加权分配, 自动故障检测与转移,确保服务高可用。
从客户端到服务端,构建多层安全防护体系。 本地配置 DPAPI 加密,传输层 TLS 1.3, 服务端 Token 鉴权,SNI 域名伪装。
每一项技术选择都经过深思熟虑,确保系统的性能、安全性和可维护性
使用纯 C 语言和 Win32 API 开发,无需任何运行时依赖,体积小巧,资源占用极低, 完美适配 Windows 7 及以上系统。
自定义 URI 协议,一键导入导出节点配置,便于分享与备份
xlink://[token]@[server]?key=xxx&route=cn&strategy=random#[节点名称]
// 基础配置(最小化)
xlink://my-password@cdn.worker.dev:443?key=my-secret-key#香港节点
// 完整配置(智能分流 + 负载均衡 + 规则)
xlink://my-password@cdn1.worker.dev:443;cdn2.worker.dev:443
?key=my-secret-key-888
&ip=104.16.132.229
&fallback=proxyip.us.net:443
&route=cn
&strategy=random
&rules=youtube,cdn1.worker.dev|google,cdn2.worker.dev
#我的超级节点
从用户点击"启动"按钮到代理服务就绪,完整的内部执行流程
用户在 GUI 界面选择节点,点击"启动当前"或"全部启动"按钮。
客户端首先调用 GetControlValues() 读取界面配置到内存结构体。
调用 SaveConfig() 将配置序列化并使用 Windows DPAPI 加密,
写入 xlink_config.dat 文件,确保敏感信息安全。
检查目标节点是否已在运行。如果是代理模式且已运行,则先调用
StopSidecarForNode() 停止旧进程。
测速模式允许并发运行,不停止现有进程。
将配置转换为命令行参数:域名池换行符替换为分号,分流规则特殊字符替换为管道符。 根据路由模式(全局/智能分流)生成不同的命令行。
使用 CreateProcess() 启动 xlink-cli-binary.exe,
创建管道捕获标准输出/错误输出,启动独立线程读取日志。
如果选择"智能分流"模式,客户端会生成 Xray 配置文件(JSON), 然后启动 xray.exe 作为前端代理,负责国内直连、广告过滤、GeoSite/GeoIP 规则匹配。
设置节点的 isRunning = TRUE,刷新 ListView 显示运行状态。
日志区域开始显示翻译后的内核输出。代理服务就绪,可以使用。
用户 → Xlink Core → CF Worker → 目标
所有流量经过 Xlink,简单高效
用户 → Xray → Xlink Core → CF Worker → 目标
Xray 负责分流决策,国内直连 + 广告过滤
基于 Go 语言开发的核心引擎,利用 goroutine 实现高并发处理, 集成代理服务、隧道传输、负载均衡、规则路由等核心功能。
Xlink Core v19.9 由六大核心模块组成,协同工作
本地 SOCKS5/HTTP 代理服务器,监听指定端口,接收应用程序的代理请求。
net.Listen("tcp")
handleSOCKS5()
handleHTTP()
解析 SOCKS5 握手、CONNECT 请求、HTTP 代理请求,提取目标地址和端口。
SOCKS5 ATYP
HTTP CONNECT
binary.BigEndian
基于关键词、域名、正则表达式匹配目标地址,决定使用哪个节点。
strings.Contains()
regexp.Regexp
match()
Random/RR/Hash 三种策略,支持加权分配,自动故障转移重试。
rand.Intn()
atomic.AddUint64()
md5.Sum()
建立 WebSocket over TLS 隧道,封装目标地址头部,双向流量转发。
websocket.Dialer
TLS 1.3
pipeDirect()
实时统计每个连接的上行/下行流量和持续时间,输出结构化日志。
atomic.AddInt64()
time.Since()
formatBytes()
listener.Accept() 接收客户端 TCP 连接
go handleGeneralConnection(conn)
读取首字节判断 SOCKS5 (0x05) 或 HTTP
io.ReadFull(conn, buf[:1])
从协议中提取目标主机和端口
host:port = parseTarget()
遍历规则列表,查找匹配的节点
match(rule, target)
无规则命中时,从节点池选择节点
selectNode(strategy)
连接 CF Worker,发送 Nano 协议头
dialZeusWebSocket()
客户端 ↔ WebSocket 双向流量转发
pipeDirect(local, ws)
根据不同场景选择合适的负载均衡策略,平衡流量分配与会话保持
混沌模式
// Random 策略实现
case "random":
idx := rand.Intn(len(pool))
targetNode = pool[idx]
加特林模式
// Round-Robin 策略实现
case "rr":
idx := atomic.AddUint64(
&globalRRIndex, 1)
targetNode = pool[idx % len(pool)]
狙击模式
// Hash 策略实现
case "hash":
h := md5.Sum([]byte(target))
hashVal := binary.BigEndian.Uint64(h[:8])
targetNode = pool[hashVal % len(pool)]
每个后端节点可配置权重值,流量按权重比例分配
# 格式: domain#ip:port|weight
cdn.worker.dev#1.2.3.4:443|3 # 权重 3
cdn.worker.dev#5.6.7.8:443|2 # 权重 2
cdn.worker.dev#9.10.11.12:443|1 # 权重 1
流量比例 = 节点权重 / 总权重 × 100%
基于目标地址匹配,将不同请求路由到指定节点
目标地址包含指定关键词即匹配
youtube,node-us
strings.Contains(target, keyword)
精确匹配完整域名(不含端口)
domain:google.com,node-hk
targetHost == rule.Value
使用正则表达式进行复杂模式匹配
regexp:.*\.google\..*,node-sg
regexp.MatchString(pattern, target)
使用 V2Ray 规则数据库,由 Xray 处理
geosite:cn → 直连
geoip:cn → 直连
geosite:category-ads → 屏蔽
由 Xray 外部处理,非内核功能
target = "youtube.com:443"
for _, rule := range routingMap
targetNode = rule.Node
selectNode(strategy)
dialZeusWebSocket(node)
# ========================================
# Xlink v19.9 分流规则配置示例
# 格式: 匹配条件,目标节点[,策略]
# ========================================
# 视频网站 → 美国节点(带宽优先)
youtube,us-node.worker.dev:443
netflix,us-node.worker.dev:443
twitch,us-node.worker.dev:443
# Google 服务 → 香港节点(低延迟)
google,hk-node.worker.dev:443
gmail,hk-node.worker.dev:443
drive.google,hk-node.worker.dev:443
# 社交媒体 → 日本节点
twitter,jp-node.worker.dev:443
instagram,jp-node.worker.dev:443
facebook,jp-node.worker.dev:443
# 开发者工具 → 新加坡节点
github,sg-node.worker.dev:443
stackoverflow,sg-node.worker.dev:443
npmjs,sg-node.worker.dev:443
# 精确域名匹配
domain:api.openai.com,us-node.worker.dev:443
# 正则表达式匹配
regexp:.*\.edu\.cn$,direct
regexp:.*\.gov\.cn$,direct
# 指定独立策略(覆盖全局策略)
steam,game-node.worker.dev:443,hash
运行在 Cloudflare 全球 300+ 数据中心的 Serverless 服务端, 零服务器成本,极低延迟,无限弹性扩展
基于 V8 引擎的边缘计算平台,代码在距离用户最近的数据中心执行, 冷启动时间 < 5ms,单次请求处理时间限制 30s(足够代理使用)
使用原生 pipeTo() API,数据在 V8 底层 C++ 栈直接流动,
JavaScript 完全不参与数据搬运
wsReadable.pipeTo(remoteSocket.writable)
Cloudflare connect() API 支持直接建立 TCP 连接,
无需额外代理层
import { connect } from 'cloudflare:sockets'
支持配置上游 SOCKS5 代理,实现代理链, 完整支持 IPv4/IPv6/域名 三种地址类型
user:pass@proxy-ip:1080
连接失败自动尝试 Fallback IP, 支持配置默认回源地址
DEFAULT_FALLBACK: "proxyip.net:443"
检查 URL 参数中的 Token
url.searchParams.get("token")
升级 HTTP 连接为 WebSocket
new WebSocketPair()
解析 Nano 二进制协议头
[HostLen][Host][Port][S5Len][S5][FBLen][FB]
按优先级尝试连接策略
SOCKS5 → Direct → Fallback
立即发送协议头后的载荷数据
remoteWriter.write(initialPayload)
双向流量直接转发
Promise.race([pipeTo(), pipeTo()])
极简的二进制协议头设计,单次原子读取解析,最小化开销
func sendNanoHeaderV2(ws *websocket.Conn, target string,
payload []byte, s5, fb string) error {
host, portStr, _ := net.SplitHostPort(target)
var port uint16
fmt.Sscanf(portStr, "%d", &port)
buf := new(bytes.Buffer)
// 写入 Host
hostBytes := []byte(host)
buf.WriteByte(byte(len(hostBytes)))
buf.Write(hostBytes)
// 写入 Port (Big Endian)
portBytes := make([]byte, 2)
binary.BigEndian.PutUint16(portBytes, port)
buf.Write(portBytes)
// 写入 SOCKS5 地址 (可选)
s5Bytes := []byte(s5)
buf.WriteByte(byte(len(s5Bytes)))
if len(s5Bytes) > 0 { buf.Write(s5Bytes) }
// 写入 Fallback 地址 (可选)
fbBytes := []byte(fb)
buf.WriteByte(byte(len(fbBytes)))
if len(fbBytes) > 0 { buf.Write(fbBytes) }
// 写入 Payload (Early Data)
if len(payload) > 0 { buf.Write(payload) }
return ws.WriteMessage(websocket.BinaryMessage, buf.Bytes())
}
从客户端到服务端,构建多层安全防护体系,保障数据隐私与传输安全
Windows DPAPI 加密存储配置文件,配置绑定当前用户账户, 即使文件被复制也无法在其他机器解密
CryptProtectData()
CryptUnprotectData()
WebSocket over TLS (WSS) 协议,使用 TLS 1.3 加密整个传输通道, 中间人无法窃取或篡改数据
wss://
TLS 1.3
AEAD
服务端入口即时验证 Token,非法请求在 HTTP 层直接拒绝 (403), 不消耗 WebSocket 资源
?token=xxx
403 Forbidden
TLS 握手时使用 CDN 域名作为 SNI,流量特征与正常 HTTPS 访问完全一致, 难以被识别和封锁
ServerName: cdn.worker.dev
Real IP: 104.16.x.x
104.16.132.229:443
(Cloudflare IP)
NodeConfig 结构体
Windows 登录凭据派生
xlink_config.dat
从用户应用发起请求,到目标服务器响应,完整的数据传输路径
浏览器 / 应用程序
HTTP/HTTPS 请求
智能分流引擎
高性能代理内核
Cloudflare 边缘节点
全球 300+ 数据中心
Serverless 服务端
Google / YouTube / etc.
HTTP/HTTPS 响应
SOCKS5/HTTP 协议解析、规则匹配、负载均衡选择
WebSocket over TLS 连接建立(含 TCP + TLS 握手)
Token 鉴权、协议解析、建立出口连接
零拷贝 pipeTo(),数据直接在底层流动,无 JS 开销
选择适合您的版本,开始体验高速、安全的代理服务
v19.9 Genesis Final
包含 xlink-client.exe + xlink-cli-binary.exe
将服务端代码部署到 Cloudflare Workers
登录 Cloudflare Dashboard → Workers → 创建 Worker → 粘贴代码
修改服务端代码中的 TOKEN 常量
const TOKEN = "your-secret-key-888";
为 Worker 绑定自定义域名(可选)
Settings → Triggers → Custom Domains → Add
填写服务器地址和 Token,启动连接
服务器: your-worker.workers.dev:443 | Token: your-secret-key-888
Xlink 的核心优势在于:
全局代理模式:所有流量都通过 Xlink Core 转发到 CF Worker,简单直接,适合需要全部代理的场景。
智能分流模式:启用 Xray 作为前端,根据 GeoSite/GeoIP 规则自动判断:
域名池支持多种格式,每行一个节点:
# 基础格式
cdn.worker.dev:443
# 指定后端 IP(SNI 伪装)
cdn.worker.dev:443#104.16.132.229:443
# 多后端 + 权重
cdn.worker.dev:443#1.2.3.4:443|3,5.6.7.8:443|2
# 多节点(每行一个)
node1.worker.dev:443#1.1.1.1:443
node2.worker.dev:443#2.2.2.2:443
node3.worker.dev:443#3.3.3.3:443
Cloudflare Workers 免费版的主要限制:
付费版($5/月)无请求次数限制。
配置文件存储在客户端所在目录的 xlink_config.dat 文件中。
安全性保障: