7.7 KiB
7.7 KiB
Xray + Reality 完整部署指南
原理说明
客户端 ──VLESS+Reality──▶ 服务端:8443 ──▶ 回落/转发
Reality 借用真实网站的 TLS 证书指纹(如 www.cloudflare.com),无需自己申请证书,抗探测能力极强。由于 Reality 不依赖 80/443 端口,可使用 8443 等其他端口,不影响服务器上已有的其他服务(如 frps)。
一、服务端部署
1. 安装 Xray
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
# 验证安装
xray version
2. 生成 Reality 密钥对
xray x25519
输出示例:
Private key: gEtA7x0Y_bcoHLj436Ock4i4Ji-Y3vpd74ba0R5hx3s
Public key: W-Y1cF1b1fvSKzBz61mV8OC1sPaIxEChlTUqOePnkWc
私钥只放服务端,公钥填写到客户端。
3. 生成 UUID
xray uuid
4. 生成 shortId
openssl rand -hex 8
shortId 为 2-16 位十六进制字符串,位数越长越安全,建议 16 位。
5. 服务端配置文件
路径:/usr/local/etc/xray/config.json
{
"log": {
"loglevel": "warning",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 8443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "你的UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.cloudflare.com:443",
"xver": 0,
"serverNames": [
"www.cloudflare.com"
],
"privateKey": "你的私钥",
"shortIds": [
"你的shortId"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}
],
"outbounds": [
{ "protocol": "freedom", "tag": "direct" },
{ "protocol": "blackhole", "tag": "block" }
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "block"
}
]
}
}
dest 目标站点选择建议:
www.cloudflare.com:443✅ 推荐addons.mozilla.org:443✅ 推荐(国内未被封)www.amazon.com:443✅ 可用
6. 创建日志目录
mkdir -p /var/log/xray
chmod 755 /var/log/xray
7. 验证配置并启动
# 验证配置语法
xray -test -c /usr/local/etc/xray/config.json
# 启动并设置开机自启
systemctl enable xray
systemctl start xray
systemctl status xray
# 确认端口监听
ss -tlnp | grep 8443
8. 开放防火墙端口
# UFW
ufw allow 8443/tcp
ufw reload
ufw status | grep 8443
# iptables(Oracle Cloud 必须执行)
iptables -I INPUT -p tcp --dport 8443 -j ACCEPT
apt install iptables-persistent -y
netfilter-persistent save
二、云服务商安全组配置
如果 tcpdump 抓不到包,必须在云控制台配置安全组。
# 验证包是否到达服务器(客户端连接时观察)
tcpdump -i any port 8443 -n
| 云服务商 | 操作位置 |
|---|---|
| 阿里云 | 安全组 → 入方向规则 |
| 腾讯云 | 安全组 → 入站规则 |
| AWS | Security Groups → Inbound Rules |
| Oracle Cloud | 网络 → VCN → 安全列表 → 添加入站规则(必须,且需同时配置本地 iptables) |
| Vultr / Hetzner | 一般无需配置,ufw 放行即可 |
Oracle Cloud 安全列表入站规则填写:
- 源 CIDR:
0.0.0.0/0(IPv6 填::/0) - IP 协议:TCP
- 目标端口:
8443
三、客户端配置
支持 Reality 的客户端
| 客户端 | 支持 Reality | 说明 |
|---|---|---|
| Xray-core | ✅ | 首选 |
| sing-box | ✅ | 支持完善 |
| clash-meta (mihomo) | ✅ | 支持 |
| Passwall (OpenWrt) | ✅ | 内置 Xray-core |
| v2ray-core | ❌ | 不支持 |
注意: Reality 客户端必须使用 Xray-core 或其他明确支持 Reality 的内核,v2ray 不可用。
Passwall (OpenWrt) 配置参数
确认 Xray-core 版本 >= 1.8.0:
xray version
节点配置填写:
| 参数 | 值 |
|---|---|
| 类型 | Xray |
| 协议 | VLESS |
| 地址 | 服务器 IP |
| 端口 | 8443 |
| UUID | 你的 UUID |
| Flow | xtls-rprx-vision |
| 传输协议 | TCP |
| TLS | Reality |
| SNI | www.cloudflare.com |
| Fingerprint | chrome |
| PublicKey | 你的公钥 |
| ShortId | 你的 shortId |
Linux 客户端 JSON 配置
安装 Xray:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
配置文件:
{
"log": { "loglevel": "warning" },
"inbounds": [
{
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": { "udp": true }
},
{
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http"
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "服务器IP",
"port": 8443,
"users": [
{
"id": "你的UUID",
"flow": "xtls-rprx-vision",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"fingerprint": "chrome",
"serverName": "www.cloudflare.com",
"publicKey": "你的公钥",
"shortId": "你的shortId",
"spiderX": "/"
}
}
},
{ "tag": "direct", "protocol": "freedom" },
{ "tag": "block", "protocol": "blackhole" }
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{ "type": "field", "ip": ["geoip:private"], "outboundTag": "direct" },
{ "type": "field", "domain": ["geosite:cn"], "outboundTag": "direct" },
{ "type": "field", "ip": ["geoip:cn"], "outboundTag": "direct" }
]
}
}
启动:
xray run -c /path/to/client_config.json
四、生成分享链接
vless://UUID@服务器IP:8443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.cloudflare.com&fp=chrome&pbk=公钥&sid=shortId&spx=%2F&type=tcp#节点名称
IPv6 地址需用方括号包裹:
vless://UUID@[IPv6地址]:8443?...
五、常用排查命令
# 查看服务状态
systemctl status xray
# 查看实时日志
journalctl -u xray -f
# 检查端口监听
ss -tlnp | grep 8443
# 抓包验证流量是否到达
tcpdump -i any port 8443 -n
# 验证配置文件
xray -test -c /usr/local/etc/xray/config.json
# 查看错误日志
cat /var/log/xray/error.log
# 测试 dest 目标可达
curl -I https://www.cloudflare.com
# 本地测试端口连通(在客户端执行)
nc -zv 服务器IP 8443
六、注意事项
| 事项 | 说明 |
|---|---|
| 私钥保密 | privateKey 只放服务端,客户端只填 publicKey |
| flow 双端一致 | 服务端客户端都必须设置 xtls-rprx-vision |
| 端口选择 | 建议使用 443 / 8443 等常见 HTTPS 端口 |
| 低调使用 | 不要分享节点给太多人,避免 IP 被标记 |
| IP 被封 | 换 IP 即可,服务端配置不需要改动 |
| Oracle Cloud | 必须同时配置控制台安全列表 + 本地 iptables |
| IPv6 优势 | IPv6 被封概率远低于 IPv4,可作为备用节点 |
七、备份信息模板
服务器 IP:
端口:8443
UUID:
PrivateKey:
PublicKey:
ShortId:
dest:www.cloudflare.com:443