Xray-Core Reality 节点部署全指南:从生成密钥到客户端连接
本文最后更新于28 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

前言
Xray-Core 是目前功能最强大的代理内核之一,而 Reality 协议凭借其“无需证书”、“抗封锁能力强”的特点,成为目前最推荐的部署方案。

本文基于 Xray-Core 官方文档,手把手教你部署 VLESS-Reality 节点。假设你已经拥有一台 Linux 服务器,并且已经部署好了一个正常的 HTTPS 网站(用于伪装流量)。


1. 准备工作

在开始之前,请确保你拥有以下信息:

  1. 服务器 IP 地址
  2. 域名:例如 example.com
  3. 域名对应的 IP 解析:确保域名解析到了当前服务器的公网 IP。
  4. 网站证书:服务器上 443 端口已经运行了一个网站(如 Nginx/Caddy),并且该网站拥有域名的有效 SSL 证书。
    • 注意:Xray Reality 需要模拟与服务器的 TLS 握手,因此服务器本地必须能处理该域名的 HTTPS 请求。
  5. Xray-Core 已安装:如果你还没安装,可以使用官方一键脚本安装。

2. 生成 Reality 密钥对

Reality 协议需要一对非对称密钥(私钥和公钥)。私钥在服务器端签名,公钥发给客户端验证。

在服务器终端运行以下命令:

xray x25519

输出示例:

{
  "public": "这里粘贴生成的公钥",
  "private": "这里粘贴生成的私钥"
}

请妥善保存这两个值:

  • Private Key:填入服务器配置文件。
  • Public Key:填入客户端配置文件。

3. 生成 UUID

VLESS 协议需要一个唯一的用户 ID (UUID)。

运行以下命令生成:

xray uuid

输出示例:

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

4. 编写服务器配置文件 (config.json)

根据你的需求,我们生成以下配置。

配置参数说明:

  • 端口8443 (自定义端口,避开 443 冲突)
  • 域名 (ServerName)example.com (替换为你的域名)
  • 伪装目标 (Dest)example.com:443 (指向本地网站)
  • 协议vless
  • 流控 (Flow)xtls-rprx-vision (推荐,提升性能)
  • Xver (Proxy Protocol)0 (不发送 PROXY protocol 头)

配置文件内容:

请将以下代码保存为 /usr/local/etc/xray/config.json(注意替换所有 // 替换为... 的内容):

{
  "log": {
    "access": "/var/log/xray/access.log",
    "error": "/var/log/xray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [
    {
      // 入站监听端口
      "port": 8443,
      // 协议类型
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            // 步骤3生成的 UUID
            "id": "替换为你的UUID",
            // 启用流控
            "flow": "xtls-rprx-vision"
          }
        ],
        // Reality 模式下,TLS 已加密,无需额外解密
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          // 是否显示握手失败页面
          "show": false,
          // 伪装目标:Xray 将模拟与 localhost:443 的 TLS 握手
          "dest": "example.com:443",
          // 是否发送 PROXY protocol 头,0为关闭,1为开启
          "xver": 0,
          // 客户端连接时使用的 SNI 域名列表
          "serverNames": [
            "example.com"
          ],
          // 步骤2生成的私钥
          "privateKey": "替换为Private Key",
          // 接受的 Short ID 列表,空字符串表示接受任意
          "shortIds": [
            ""
          ]
        }
      }
    }
  ]
}

注意

  1. 确保 dest 指向的域名在服务器本地 DNS 解析正确,且本地 443 端口有对应的 HTTPS 证书。
  2. 如果 destserverNames 中的域名不一致,请根据实际域名调整。

5. 启动与验证服务

1. 验证配置格式

在重启前,检查配置文件是否有语法错误:

xray -c /usr/local/etc/xray/config.json format

如果没有报错,说明 JSON 格式合法。

2. 启动 Xray 服务

systemctl restart xray

3. 检查运行状态

systemctl status xray

如果显示 Active: active (running),则服务已启动。

4. 验证端口监听

使用 ss 命令检查 8443 端口是否正在监听:

ss -tlnp | grep 8443

预期输出:

LISTEN 0  511  :::8443  :::*  users:(("xray",pid=xxxx,fd=6))

如果看到上述输出,说明配置成功生效。

5. 配置防火墙

确保服务器防火墙放行了 8443 端口:

Ubuntu/Debian (UFW):

ufw allow 8443/tcp
ufw reload

CentOS/RHEL (Firewalld):

firewall-cmd --zone=public --add-port=8443/tcp --permanent
firewall-cmd --reload

6. 客户端配置

现在你需要在客户端(手机/电脑)上填入以下信息。你可以使用 Xray 分享链接 (vless://) 或手动配置。

参数列表:

参数说明
Address (地址)example.com你的域名
Port (端口)8443服务器监听端口
Id (ID)xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx步骤3生成的 UUID
Security (加密)xtls-rprx-vision必须与服务端 Flow 一致
SNIexample.com服务器域名
Type (底层传输)tcp
PublicKey这里粘贴Public Key步骤2生成的公钥
ShortId(留空)服务端允许任意 ShortId
Flowxtls-rprx-vision与服务端一致

分享链接格式:

vless://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@example.com:8443?type=tcp&encryption=none&security=reality&sni=example.com&fp=chrome&pbk=这里粘贴Public Key&flow=xtls-rprx-vision

7. 常见问题排查

  1. 客户端提示 “TLS Handshake Timeout”
    • 检查服务器防火墙是否放行 8443。
    • 检查 dest 指向的本地网站(443端口)是否正常开启,且证书有效。
    • 检查 serverNames 中的域名是否与客户端 SNI 一致。
  2. 客户端提示 “Protocol Error” 或连接断开
    • 检查 UUID 是否正确。
    • 检查 flow 是否一致(服务端 xtls-rprx-vision,客户端加密方式选 xtls-rprx-vision)。
    • 检查 PublicKey 是否复制完整(Base64 字符串)。
  3. 日志报错 “Permission denied”
    • 确保 /var/log/xray/ 目录有写入权限,或者使用 sudo 启动 Xray。
  4. 同一服务器共用 443 端口
    • 如果 Xray 监听 8443,网站监听 443,则无冲突。
    • 如果 Xray 也想监听 443,需通过 Nginx/Caddy 根据 SNI 或路径进行分流,或者使用 xver: 1 配合 Nginx 的 proxy_protocol

8. 总结

通过以上步骤,你已成功搭建了一个基于 Xray-Core 的 VLESS-Reality 节点。该配置具有抗封锁能力强、无需自定义证书、性能优异等特点。

下一步建议:

  • 定期备份 config.json
  • 监控日志 /var/log/xray/access.log 以观察流量情况。
  • 根据需求调整 maxClientIpsshortIds 以增强安全性。

(注:本文配置严格基于 Xray-Core 官方文档生成,字段有效性已通过文档核对。)

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇