xray-onexray-reality 详细部署教程

项目概述

xray-onexray-reality 是一个用于在 VPS 上快速部署 Xray REALITY 服务的脚本工具。它的设计目标是简化部署流程,通过一条命令即可完成安装,并生成可供 OneXray 客户端扫描导入的二维码。

核心特点

  • 一条命令完成安装
  • 自动生成配置并输出二维码
  • 配合 OneXray 客户端使用
  • 基于 Xray 的 REALITY 传输安全方案

技术背景:REALITY 是 Xray 核心中一种改进的 TLS 形式,它借用目标网站的 TLS 外观和握手特征来完成伪装 。启用 REALITY 并配置合适的 XTLS Vision 流控模式,可以达到数倍甚至十几倍的性能提升 。从外部看来,使用 REALITY 的流量与正常上网具有一致性 。


部署前准备

系统要求

项目 要求
操作系统 Linux(推荐 Debian/Ubuntu)
权限 Root 用户或 sudo 权限
内存 最低 512MB,推荐 1GB+
磁盘空间 最低 100MB
网络 稳定的互联网连接,VPS 需有公网 IP

准备工作

  1. 一台 VPS:确保你拥有 VPS 的 SSH 访问权限
  2. OneXray 客户端:用于手机端扫码导入配置
  3. 防火墙配置:确保 VPS 的 443 端口(或其他监听端口)已放行

SSH 连接 VPS

1
ssh root@你的VPS_IP

方案一:一键命令部署(推荐)

这是最简单的部署方式,适合大多数用户。

步骤 1:执行安装命令

SSH 登录 VPS 后,直接执行以下命令:

1
curl -fsSL https://raw.githubusercontent.com/www222fff/xray-onexray-reality/main/install.sh | bash

步骤 2:查看输出

安装完成后,终端会显示:

  • 配置信息
  • 二维码(用于手机 OneXray 扫码导入)

步骤 3:使用 OneXray 扫码导入

  1. 打开手机上的 OneXray 应用
  2. 点击扫描二维码功能
  3. 扫描终端显示的二维码
  4. 配置会自动导入

安全提醒

根据项目说明,请注意以下安全事项:

  • 不要把 UUID、密钥、导入链接、二维码发到公开聊天或提交到 Git
  • 仅供个人学习与自用,请遵守当地法律及服务商条款
  • 本仓库不包含任何真实节点凭据

方案二:手动部署(了解原理)

如果你希望更精细地控制部署过程,或需要自定义配置,可以按以下步骤手动部署。

步骤 1:安装 Xray

1
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

步骤 2:生成密钥

生成 UUID(每个客户端独立):

1
xray uuid

生成 X25519 密钥对(REALITY 必需):

1
xray x25519

生成 shortId:

1
openssl rand -hex 8

根据 REALITY 官方文档,privateKey 需使用 ./xray x25519 生成 。shortIds 的格式要求为 0 到 f 的十六进制字符,长度为 2 的倍数,长度上限为 16 。

步骤 3:配置 Xray

编辑配置文件 /usr/local/etc/xray/config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "你的UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"target": "itunes.apple.com:443",
"xver": 0,
"serverNames": ["itunes.apple.com"],
"privateKey": "你的私钥",
"shortIds": ["你的shortId"]
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
}
]
}

配置说明

  • target:必填,格式同 VLESS fallbacks 的 dest
  • serverNames:必填,客户端可用的 serverName 列表
  • privateKey:必填,执行 ./xray x25519 生成
  • shortIds:必填,客户端可用的 shortId 列表

步骤 4:验证配置

1
xray run -test -c /usr/local/etc/xray/config.json

步骤 5:启动服务

1
2
3
systemctl enable xray
systemctl restart xray
systemctl status xray

步骤 6:配置防火墙

1
2
3
ufw allow ssh
ufw allow 443/tcp
ufw enable

客户端配置

生成客户端链接

服务端配置完成后,客户端需要以下信息:

text

1
vless://UUID@服务器IP:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=itunes.apple.com&fp=chrome&pbk=公钥&sid=shortId&type=tcp#节点名称

参数说明

参数 说明
UUID 客户端 UUID
服务器IP VPS 的公网 IP
flow xtls-rprx-vision
security reality
sni serverNames 中的一个
fp chrome(模拟 Chrome 指纹)
pbk 服务端公钥(由 x25519 生成)
sid shortId
type tcp

OneXray 客户端导入

  1. 打开 OneXray 应用
  2. 选择导入方式:
    • 扫描二维码
    • 从剪贴板导入
    • 手动输入链接
  3. 保存并连接

其他客户端支持

根据 Xray 文档,REALITY 支持多种客户端 :

  • Android:v2rayNG、OneXray
  • iOS:Streisand、Shadowrocket、V2BOX
  • macOS:V2BOX、Xray-core
  • Windows:V2rayN、Nekoray

安全加固建议

1. 选择合适的目标网站

根据 Xray 官方建议,目标网站应满足以下标准 :

  • 国外网站
  • 支持 TLSv1.3 与 H2
  • 域名非跳转用(主域名可能被用于跳转到 www)

加分项:

  • IP 相近(更像真实访问,且延迟低)
  • Server Hello 后的握手消息一起加密(如 dl.google.com
  • 有 OCSP Stapling

2. 防止流量偷跑

REALITY 对于鉴权失败的流量会直接转发至 target。如果 target 网站使用了 Cloudflare CDN,你的服务器可能被当作端口转发器,造成流量偷跑 。

解决方案:

  • 考虑前置 Nginx 过滤不符合要求的 SNI
  • 配置 limitFallbackUploadlimitFallbackDownload 限制速率

3. 日志轮转

配置日志轮转防止磁盘占满:

1
2
3
4
5
6
7
8
9
10
cat > /etc/logrotate.d/xray << 'EOF'
/var/log/xray/*.log {
size 50M
rotate 5
compress
missingok
notifempty
copytruncate
}
EOF

4. 启用 BBR 加速

1
2
echo -e "net.core.default_qdisc = fq\nnet.ipv4.tcp_congestion_control = bbr" | tee /etc/sysctl.d/99-bbr.conf
sysctl -p /etc/sysctl.d/99-bbr.conf

常见问题排查

问题 症状 解决方案
连接超时 客户端无法连接 检查防火墙是否放行端口,确认 VPS 安全组规则
REALITY 握手失败 连接被拒绝 检查 UUID、公钥、shortId 是否正确复制
服务无法启动 systemctl 报错 运行 xray run -test -c /usr/local/etc/xray/config.json 检查配置
二维码无法扫描 OneXray 识别失败 尝试从剪贴板导入链接
时间不同步 握手失败 确保服务器时间准确,使用 ntpdate 同步

诊断命令

1
2
3
4
5
6
7
8
# 查看服务状态
systemctl status xray --no-pager -l

# 查看日志
journalctl -u xray -n 100 --no-pager

# 测试配置
xray run -test -c /usr/local/etc/xray/config.json

更新与维护

更新 Xray 核心

1
2
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
systemctl restart xray

查看当前配置

1
cat /usr/local/etc/xray/config.json

重新生成客户端配置

如果需要重新生成客户端链接,可以运行项目提供的脚本:

1
curl -fsSL https://raw.githubusercontent.com/www222fff/xray-onexray-reality/main/reprint-link.sh | bash

重要安全提醒

根据项目说明,请务必遵守以下安全准则:

  1. 保护敏感信息:不要把 UUID、密钥、导入链接、二维码发到公开聊天或提交到 Git
  2. 仅供个人学习与自用:请遵守当地法律及服务商条款
  3. 不要分享节点:本仓库不包含任何真实节点凭据,分享节点可能导致被封禁

总结

部署方式 适用场景 难度 推荐度
一键命令部署 大多数用户 ⭐⭐⭐⭐⭐
手动部署 需要自定义配置 ⭐⭐⭐ ⭐⭐⭐
客户端导入 配置完成后使用 ⭐⭐⭐⭐⭐

对于大多数用户,一键命令部署是最简单直接的选择:

1
2
3
4
5
6
7
# SSH 登录 VPS
ssh root@你的VPS_IP

# 执行安装
curl -fsSL https://raw.githubusercontent.com/www222fff/xray-onexray-reality/main/install.sh | bash

# 用 OneXray 扫描终端显示的二维码

完成部署后,你的手机 OneXray 即可通过扫码导入配置并连接。请务必保护好生成的敏感信息,不要公开分享。