xray-onexray-reality 是一个用于在 VPS 上快速部署 Xray REALITY 服务的脚本工具
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 |
准备工作
- 一台 VPS:确保你拥有 VPS 的 SSH 访问权限
- OneXray 客户端:用于手机端扫码导入配置
- 防火墙配置:确保 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 扫码导入
- 打开手机上的 OneXray 应用
- 点击扫描二维码功能
- 扫描终端显示的二维码
- 配置会自动导入
安全提醒
根据项目说明,请注意以下安全事项:
- 不要把 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 | { |
配置说明 :
target:必填,格式同 VLESS fallbacks 的 destserverNames:必填,客户端可用的 serverName 列表privateKey:必填,执行./xray x25519生成shortIds:必填,客户端可用的 shortId 列表
步骤 4:验证配置
1 | xray run -test -c /usr/local/etc/xray/config.json |
步骤 5:启动服务
1 | systemctl enable xray |
步骤 6:配置防火墙
1 | ufw allow ssh |
客户端配置
生成客户端链接
服务端配置完成后,客户端需要以下信息:
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 客户端导入
- 打开 OneXray 应用
- 选择导入方式:
- 扫描二维码
- 从剪贴板导入
- 手动输入链接
- 保存并连接
其他客户端支持
根据 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
- 配置
limitFallbackUpload和limitFallbackDownload限制速率
3. 日志轮转
配置日志轮转防止磁盘占满:
1 | cat > /etc/logrotate.d/xray << 'EOF' |
4. 启用 BBR 加速
1 | echo -e "net.core.default_qdisc = fq\nnet.ipv4.tcp_congestion_control = bbr" | tee /etc/sysctl.d/99-bbr.conf |
常见问题排查
| 问题 | 症状 | 解决方案 |
|---|---|---|
| 连接超时 | 客户端无法连接 | 检查防火墙是否放行端口,确认 VPS 安全组规则 |
| REALITY 握手失败 | 连接被拒绝 | 检查 UUID、公钥、shortId 是否正确复制 |
| 服务无法启动 | systemctl 报错 | 运行 xray run -test -c /usr/local/etc/xray/config.json 检查配置 |
| 二维码无法扫描 | OneXray 识别失败 | 尝试从剪贴板导入链接 |
| 时间不同步 | 握手失败 | 确保服务器时间准确,使用 ntpdate 同步 |
诊断命令
1 | # 查看服务状态 |
更新与维护
更新 Xray 核心
1 | bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install |
查看当前配置
1 | cat /usr/local/etc/xray/config.json |
重新生成客户端配置
如果需要重新生成客户端链接,可以运行项目提供的脚本:
1 | curl -fsSL https://raw.githubusercontent.com/www222fff/xray-onexray-reality/main/reprint-link.sh | bash |
重要安全提醒
根据项目说明,请务必遵守以下安全准则:
- 保护敏感信息:不要把 UUID、密钥、导入链接、二维码发到公开聊天或提交到 Git
- 仅供个人学习与自用:请遵守当地法律及服务商条款
- 不要分享节点:本仓库不包含任何真实节点凭据,分享节点可能导致被封禁
总结
| 部署方式 | 适用场景 | 难度 | 推荐度 |
|---|---|---|---|
| 一键命令部署 | 大多数用户 | ⭐ | ⭐⭐⭐⭐⭐ |
| 手动部署 | 需要自定义配置 | ⭐⭐⭐ | ⭐⭐⭐ |
| 客户端导入 | 配置完成后使用 | ⭐ | ⭐⭐⭐⭐⭐ |
对于大多数用户,一键命令部署是最简单直接的选择:
1 | # SSH 登录 VPS |
完成部署后,你的手机 OneXray 即可通过扫码导入配置并连接。请务必保护好生成的敏感信息,不要公开分享。




