xHTTP 传输
概览
xHTTP 是 Xray 的一种传输方式,它通过常规 HTTP 请求/响应模式承载代理流量,使其更接近普通 Web 应用流量。它常与 VLESS + TLS/Reality 搭配使用,以增强伪装并穿越受限网络环境。
适用场景
- 你需要让流量融入常见 HTTPS API 访问模式。
- 你的网络环境对长连接 WebSocket 或 gRPC 特征较敏感。
- 你希望将 VLESS 的身份认证与 HTTP 风格的上下行行为结合。
核心配置字段
| 字段 | 侧别 | 含义 |
|---|---|---|
network: xhttp | client/server | 启用 xHTTP 传输。 |
path | client/server | 传输使用的 HTTP 请求路径,客户端与服务端必须一致。 |
host | client | 可选的 Host 请求头覆盖(用于前置/反向代理场景)。 |
mode | client/server | 传输模式,通常为 auto(默认)或平台特定变体。 |
extra.headers | client | 额外 HTTP 请求头,用于模拟应用/API 流量。 |
xmux | client/server | 多路复用调优项,如并发限制与连接复用。 |
tls / reality | client/server | 生产环境强烈建议启用加密/伪装层。 |
最小示例(客户端,Clash-Meta 风格)
proxies:
- name: vless-xhttp
type: vless
server: edge.example.com
port: 443
uuid: 11111111-2222-3333-4444-555555555555
tls: true
servername: cdn.example.com
network: xhttp
xhttp-opts:
path: /api/v1/sync
host:
- cdn.example.com
mode: auto
headers:
User-Agent:
- okhttp/4.12.0
最小示例(服务端,Xray 风格)
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{ "id": "11111111-2222-3333-4444-555555555555" }
],
"decryption": "none"
},
"streamSettings": {
"network": "xhttp",
"security": "tls",
"tlsSettings": {
"serverName": "cdn.example.com",
"certificates": [
{
"certificateFile": "/etc/ssl/fullchain.pem",
"keyFile": "/etc/ssl/privkey.pem"
}
]
},
"xhttpSettings": {
"path": "/api/v1/sync",
"mode": "auto"
}
}
}
]
}
部署注意事项
- 保持客户端与服务端
path和 mode 完全一致,否则握手会失败。 - 优先使用真实且稳定的请求头;频繁变更指纹会降低稳定性。
- 若部署在 Nginx/Caddy/CDN 后方,请确保请求缓冲与超时限制适配长连接代理流。
- 先使用保守的
xmux参数,待观察延迟与上游限制后再调高并发。
故障排查清单
- 连接后立即出现
EOF:请检查 UUID、TLS server name 以及path是否一致。 - 频繁重连:请检查反向代理空闲超时和 HTTP/2 上游设置。
- 握手正常但吞吐差:请减少请求头冗余、调优
xmux,并确认 CDN 区域亲和性。