3x-ui3x-ui test
配置

传输方式与安全层

3x-ui 提供的每一种传输方式——TCP、mKCP、WebSocket、gRPC、HTTPUpgrade、XHTTP、Hysteria——及其设置项,外加 FinalMask 混淆、sockopt、TLS/REALITY、XTLS-Vision 以及 VLESS 加密。

传输方式决定数据包在客户端与服务器之间如何承载,安全层决定它们如何被加密和伪装, 而 FinalMask 可以对剩下的部分进行混淆。面板只提供有效的组合;本页列出每一种传输方式的 设置项以及面板强制执行的规则。

传输方式

在入站/出站表单中选择传输方式(入站的 network)。每种网络会在传输链路上写入它自己的 设置键(tcpSettingskcpSettings……)。

传输方式设置键适用场景
TCP (Raw)tcpSettings开销最低。是 REALITY + XTLS-Vision 以及回落的基础;可选的 HTTP/1.1 头部伪装。
mKCPkcpSettings基于 UDP 的可靠协议——以带宽换取在丢包链路上更低的延迟。承载不了 TLS/REALITY。
WebSocketwsSettings可穿透 CDN 和 HTTP 反向代理;兼容性极佳。
gRPCgrpcSettings基于 HTTP/2;多路复用效果好,通过 Nginx 代理也很干净。
HTTPUpgradehttpupgradeSettings对 CDN 友好的 HTTP/1.1 Upgrade;比完整的 WebSocket 更轻量。
XHTTPxhttpSettings现代的流多路复用 HTTP 传输;对 CDN 友好且支持 REALITY。
HysteriahysteriaSettings基于 QUIC 的传输——仅用于 Hysteria2 协议。

WireGuardTunnel(dokodemo-door)入站不提供传输方式选择器——它们的传输流 只承载安全层/sockopt。早期的面板还提供过一个原始的 HTTP/2 (http) 传输;它已被 XHTTP 取代,不再可供选择。

TCP (Raw) — tcpSettings

字段默认值含义
acceptProxyProtocolfalse接受来自上游代理的 PROXY 协议,以保留真实的客户端 IP。
header.typenonenone,或 http(用于 HTTP/1.1 伪装)。
header.request / responsetype: http 时:方法、路径、版本以及一个模仿正常 HTTP 交互的头部映射。

mKCP — kcpSettings

字段默认值含义
mtu1350最大传输单元,单位字节(576–1460)。
tti20传输时间间隔,单位毫秒(10–100)。越低 = 响应越快,开销越大。
uplinkCapacity5上行带宽预算,单位 MB/s
downlinkCapacity20下行带宽预算,单位 MB/s
cwndMultiplier1拥塞窗口乘数;在优质链路上调高可以更激进地发送。
maxSendingWindow2097152在途数据包数量的上限。

mKCP 无法承载 TLS 或 REALITY。要伪装它,可以添加一个 FinalMask UDP 掩码—— mkcp-legacy 掩码重现了旧版 Xray 存储在 kcpSettings.header/seed 中的经典头部 混淆(这些字段在这里已不复存在)。

WebSocket — wsSettings

字段默认值含义
path/请求路径——当多个服务共用一个主机时可据此路由。
host(无)Host 头部覆盖(在 CDN 后面很有用)。
headers{}额外的请求头。
heartbeatPeriod0keepalive ping 之间的秒数;0 表示禁用。
acceptProxyProtocolfalse接受来自上游的 PROXY 协议。

gRPC — grpcSettings

字段默认值含义
serviceName(无)gRPC 服务路径;作用类似一个秘密路由。
authority(无):authority 伪头部覆盖。
multiModefalse在一条连接上多路复用多个流。

HTTPUpgrade — httpupgradeSettings

字段默认值含义
path/请求路径。
host(无)Host 头部覆盖。
headers{}额外的请求头。
acceptProxyProtocolfalse接受来自上游的 PROXY 协议。

HTTPUpgrade 是一次性的 HTTP/1.1 Upgrade,没有 WebSocket 帧——因此没有心跳字段。

XHTTP — xhttpSettings

XHTTP(SplitHTTP)有一组庞大的字段;面板会填入合理的默认值。你通常会改动的那些:

字段默认值含义
path/请求路径。
host(无)Host 头部覆盖。
modeautoautopacket-upstream-upstream-onepacket-up 对 CDN 兼容性最好;stream-* 延迟更低。
xPaddingBytes100-1000用于模糊数据包大小的随机填充范围。
scMaxBufferedPosts30服务端对上传 POST 的缓冲区。
scStreamUpServerSecs20-80stream-up 服务端窗口(短横线范围)。
xmux (enableXmux)(关闭)连接多路复用——maxConcurrency 16-32maxConnections 6……为高并发场景开启。

Session-ID 字段(sessionIDPlacementsessionIDKeysessionIDTablesessionIDLength)以及 scMin/MaxEachPostBytes 旋钮属于高级项;除非要匹配某个特定的 上游,否则保持为空。

Hysteria — hysteriaSettings

仅当协议为 Hysteria2 时有效。

字段默认值含义
version2Hysteria 协议版本。
auth(无)共享的认证字符串。
udpIdleTimeout60空闲 UDP 会话被丢弃前的秒数(2–600)。
masquerade伪装成一个 HTTP/3 服务器:typeproxy/file/string,配合 url/dir/content,外加 headersstatusCode

FinalMask — 末层混淆

FinalMask 在传输方式和安全层之后包裹流量,因此它既能伪装那些承载不了 TLS 的 传输(如 mKCP),也能在 TLS 之上再加一层外壳。掩码按方向分别配置:

  • TCP 掩码fragmentsudokuheader-customxmc(把流量伪装成 Minecraft 协议;密码必填,主机名和玩家用户名可选)。
  • UDP 掩码salamandermkcp-legacyheader-customxdnsxicmpnoisesudokurealm。(mkcp-legacy 重现旧版 mKCP 的头部混淆。)
  • QUIC 参数 — 拥塞控制(renobbrbrutalforce-brutal)、Brutal 上/下行 速率、udpHop(在一个范围内轮换 QUIC 端口以规避端口封锁)以及接收窗口调优。

FinalMask 取代了旧版 Xray 构建中暴露的、按每种传输各自实现的 header/seed 混淆。

sockopt — 底层套接字选项

sockopt 与任意传输方式一同生效,用于调优底层套接字。最有用的字段:

字段默认值含义
tcpFastOpenfalse启用 TCP Fast Open。
tcpcongestionbbr拥塞控制:bbrcubicreno
tproxyoff透明代理模式:offredirecttproxy
domainStrategyAsIs地址如何解析(UseIPForceIPv4……)。
dialerProxy(无)将此出站的拨号链式经过另一个出站标签。
interface(无)绑定到指定的网络接口。
mark0用于策略路由的 SO_MARK(0 = 未设置)。

保持为 0 的数值字段不会写入传输链路,因此 Xray 会沿用操作系统的默认值。高级条目 (happyEyeballscustomSockopt[]、keepalive 计时器)可用于特殊场景。

安全

安全层为 nonetlsreality 三者之一,并遵循以下适用规则:

安全层适用的传输方式适用的协议
TLStcp, ws, grpc, httpupgrade, xhttpVLESS、VMess、Trojan、Shadowsocks(Hysteria2 始终为 TLS)
REALITYtcp, grpc, xhttpVLESS、Trojan

mKCP 和 Hysteria 不使用单独的 TLS/REALITY 层——mKCP 以明文运行(用 FinalMask 混淆), 而 Hysteria 在设计上就是 QUIC/TLS。REALITY 会把你的服务器伪装成一个真实的 TLS 站点, 且无需证书——参见 REALITY

XTLS-Vision 流控

xtls-rprx-vision 流控既快速又能抵抗 DPI。在以下任一情况下,它都可用于 VLESS

  • 传输方式为裸 TCP,安全层为 TLSREALITY(经典的 XTLS-Vision),或者
  • 传输方式为 XHTTP 且启用了 VLESS 加密(见下文)。

请在 VLESS 客户端上设置流控,而不是在入站上。在 TCP 上使用经典 Vision 时,一旦某个 客户端使用该流控,面板还可以提供一个 Vision seed

VLESS 加密(ML-KEM)

VLESS 支持后量子加密(ML-KEM / mlkem768x25519),它存储在入站的 decryption (服务器)以及客户端的 encryption(用于生成链接)中。启用后,它会解锁在 XHTTP 之上的 Vision 流控。请从面板的 VLESS 设置中生成密钥。

Shadowsocks 加密方式

Shadowsocks 入站同时支持经典加密方式和 Shadowsocks-2022(以 2022-blake3- 开头的方法名)。大多数加密方式支持多用户;2022-blake3-chacha20-poly1305 为单用户。

传输方式和安全层必须在两端一致。客户端的分享链接会对它们进行编码(type=wssecurity=realityflow=xtls-rprx-vision……)——可使用 分享链接检查器解码任意链接。

On this page