xray-core详解
Xray-core 详解(2026 年中)
网络工程 / 协议实现学习向文档。聚焦架构、配置模型、协议支持与生态定位。
1. 概述与定位
Xray-core 是当前代理生态中抗封锁能力最前沿的核心,由 XTLS 团队维护。它是 v2ray-core 的一个分支,因 VLESS / XTLS 的技术路线分歧而从 V2Ray 社区独立出来。
它的核心标签:
- Reality 协议的原生实现者(VLESS + Reality 是 2023 年以来抗主动探测的主流方案)。
- 协议集合偏向”V2Ray 系”:VLESS、VMess、Trojan、Shadowsocks。
- 设计哲学偏向”把抗封锁的协议做到极致”,而不是追求协议数量全覆盖。
2. 项目背景与生态
| 项目 | 说明 |
|---|---|
| 上游 | v2ray-core(V2Ray 原核心) |
| 分叉原因 | 围绕 XTLS / VLESS 的路线争议,XTLS 团队另起炉灶 |
| 维护者 | XTLS 团队(开源) |
| 语言 | Go |
| 标志性特性 | Reality、Vision 流控、XHTTP、Xtls-rprx 系列 |
常见 GUI 封装:
- Windows / Android:
v2rayN、v2rayNG - 跨平台:
NekoBox(也支持 sing-box / mihomo) - 路由器:
OpenWrt上的 passwall / hello-world 等 - 移动端:
Shadowrocket、Stash等通过内置对应核心支持
3. 架构与核心组件
Xray 的运行时由若干**对象(object)**组成,一份配置本质就是描述这些对象如何连接:
入站 (Inbound) → 路由 (Routing) → 出站 (Outbound) → 网络
↑ ↓
└──────────── 本地应用(浏览器/SOCKS5/HTTP)────────────┘
DNS / Policy / Observation(辅助系统)
- Inbound(入站):定义”本地应用怎么连进来”,通常是 SOCKS、HTTP、或 Dokodemo-door(透明代理)。
- Outbound(出站):定义”流量从哪个协议出去”,每个出站对应一个协议 + 传输方式 + 目标地址。
- Routing(路由):基于规则把流量分到不同出站(直连 / 代理 / 阻断)。
- DNS:独立的 DNS 处理模块(支持按域名分流、劫持、hosts)。
- Policy / Observation:流量统计、日志、限速等。
4. 支持的协议与传输
协议(Protocol)
- VLESS:核心协议,支持
flow: xtls-rprx-vision(Vision 流控)。 - VMess:老牌协议,仍支持但渐被 VLESS 取代。
- Trojan:TLS 伪装。
- Shadowsocks:含 2022 版 AEAD。
- 辅助:
SOCKS、HTTP、DNS、Freedom(直连)、Blackhole(阻断)、Dokodemo-door(透明转发)。
传输层(Transport / StreamSettings)
tcp(可叠加 Reality、TLS)ws(WebSocket,常走 CDN)h2(HTTP/2)grpc(gRPC,多路复用,适合 CDN)kcp(mKCP,UDP,弱网友好)quic
Reality 是 Xray 的招牌:它不在传输层做 TLS,而是”借用真实目标的 TLS 握手”完成认证(详见《主流代理协议技术详解》2.1 节)。
5. 配置模型(JSON)
Xray 配置是单一 JSON 文件,核心字段:
{
"log": { "loglevel": "warning" },
"inbounds": [ /* 本地入口:socks/http/dokodemo */ ],
"outbounds": [ /* 代理出口:vless/trojan/ss + streamSettings */ ],
"routing": {
"rules": [ /* 基于 domain/ip/protocol/port 的分流规则 */ ]
},
"dns": { /* 独立 DNS 引擎 */ },
"policy": { /* 限速/统计 */ },
"observation": { /* 流量观测 */ }
}
学习要点:
outbounds[].streamSettings是”抗封锁能力”的开关所在(Reality / TLS / ws 等都在这里配)。routing.rules支持按domain、ip、port、protocol、source分流,可引用geosite/geoip数据库。- 多出站 + 路由规则,是”国内外分流""广告拦截”等能力的实现基础。
6. 关键能力
- Reality(抗主动探测):面对探测表现得像真实网站的 TLS 会话。
- Vision 流控:传输层透传内层 TLS,降低 TLS-in-TLS 特征 + 省 CPU。
- XHTTP:把代理流量拆成多个真实 HTTP 请求,适配 CDN / 高审查。
- 路由与 DNS 独立模块:支持按域名/IP 精细分流、DNS 污染对抗。
- 多入站:SOCKS + HTTP + 透明代理可同时开。
7. 典型使用形态
- 桌面:v2rayN(Windows)/ v2rayNG(Android)导入订阅或手动 JSON。
- 路由器:OpenWrt + passwall,全家流量走 Xray 透明代理。
- 链式:Xray 作为”入口抗封锁节点”,后端接其他高性能核心。
8. 横向对比(与 sing-box / mihomo)
| 维度 | Xray-core | sing-box | mihomo |
|---|---|---|---|
| 协议广度 | 中(V2Ray 系为主) | 最广 | 广(偏 Clash 系) |
| 抗封锁旗舰 | Reality/Vision | 支持但非原生首发 | 支持(借 Xray 思路) |
| 配置格式 | JSON | JSON | YAML |
| 路由风格 | 规则路由 | 规则路由 + 强 DNS | 规则组(proxy-group) |
| 生态定位 | 抗封锁前沿 | 统一全能核心 | 规则分流体验最佳 |
9. 学习建议
- 想理解 Reality / Vision 的底层机制,Xray 是必读源码(XTLS/Xray-core)。
- 配合官方文档的
features章节,逐个对照streamSettings的每种传输差异。 - 用
v2rayN的”生成配置”功能反向学习:GUI 生成的就是标准 JSON,是最好的对照教材。
相关笔记
本系列属于「代理协议与核心实现」知识簇: