下面是一篇基于以上字幕内容整理而成的博客文章,便于大家快速了解在 Windows 环境下搭建 Reality (Xray) 的流程。内容会以个人口吻撰写,并包含字幕中提到的关键步骤和注意事项。


在 Windows 服务器上搭建 Reality 节点教程

一、准备工作

  1. 一台 Windows 服务器

    • 这里无论是本地虚拟机还是云服务器都可以,只要是 Windows 系统即可。
  2. Xray 内核

    • 到 Xray 项目 的 Release 页面,找到适合你系统架构的 Windows 64(或 32)版本。
    • 下载并解压得到一堆文件,我们可以删除一些不用的文件,比如多语言说明等。只保留 xray.exe(主程序)和 geo* 数据库文件即可。
  3. 一个支持代码高亮的编辑器(可选)

    • 你可能用普通文本编辑器也可以,但有代码高亮能让我们更容易看懂配置文件中的字段。
  4. Reality 配置文件(示例)

    • 我会在文末给出示例配置,大家只需根据需要改端口、UUID、私钥等内容即可。

二、校验 Xray 是否能够正常执行

  1. 打开 PowerShell(或 CMD),进入刚才解压的 Xray 文件夹目录。例如:

    1
    
    cd "C:\Users\Administrator\Desktop\xray-windows-64"
    
  2. 尝试运行 xray.exe

    1
    
    .\xray.exe
    
    • 如果报错,很可能是因为缺少配置文件,或当前目录下的默认 config.json 配置有误。我们需要先准备好正确的配置文件。

三、编写(或修改)配置文件

在你解压的 Xray 文件夹里,可能已经有一个示例 config.json,或者你可以新建一个。如果你的编辑器支持高亮,可以更直观地查看配置结构。

以下是大致需要修改的几个关键点(以 VLESS + Reality 为例):

  1. 端口

    • 例如在 inbounds 下,将 port 改成想使用的端口号码(只要未被占用就行)。
    • 本文演示用 6666 作为示例端口。
  2. UUID

    • 每个用户都需要一个独立的 UUID。可以在 v2rayN 或其他工具里快速生成。
    • 复制生成的 UUID 填入到 id 字段里。
  3. Reality 私钥 (privateKey)

    • 在 PowerShell 输入:

      1
      
      .\xray.exe x25519
      

      它会生成一对公钥 (PublicKey) 和私钥 (PrivateKey)。

    • 将私钥粘贴到配置文件的 "privateKey": "" 处;公钥则需要在客户端配置里使用。

  4. shortIds(可选)

    • 如果你的配置使用了 shortIds,可以随意添加一串随机字符串(长度不超过 16 个字节)。这一步并不复杂,你可以用 openssl rand -hex 4(或者其他方式)随机生成即可。确保服务器和客户端匹配即可。

完成以上修改后,保存我们的 config.json。注意一定要确保语法正确,最好使用支持 JSON 检查的编辑器或在线校验工具,避免出现逗号、引号等符号错误。

四、启动 Xray

  1. 再次打开 PowerShell,进入 Xray 文件夹目录:

    1
    
    cd "C:\Users\Administrator\Desktop\xray-windows-64"
    
  2. 执行启动命令

    1
    
    .\xray.exe
    
    • 如果没有报错,而且窗口保持 “等待” 状态,说明 Xray 已经成功运行了。

五、客户端配置

  1. 服务器地址

    • 在你的客户端(如 v2rayN、Clash 等)里,服务器 IP 填写成 Windows 服务器的公网 IP。
    • 端口就是上面选择的 6666
  2. 用户 UUID

    • 与服务器上的配置一致。
  3. Reality 模式

    • 在 v2rayN 中,选择 VLESS → Reality,然后填入对应的公钥 (PublicKey)、短 ID (如果有的话) 等信息。
    • 伪装域名 (SNI) 与服务器端 Reality 配置中的 serverNames 保持一致。
    • flow 一般为空,encryption 一般选 none。
  4. 测试连接

    • 保存后查看延迟或直接通过浏览器测试是否可以正常访问国外网站。如果有延迟显示,且能访问外网,一般就说明成功了。

六、保持 Xray 运行

  • 目前 Xray 直接在 PowerShell 窗口中前台运行,只要这个窗口开着,节点就保持可用。
  • 如果想要在后台运行,你可以使用 Windows 的任务计划程序(Task Scheduler)或其他第三方工具,让 Xray 以服务形式自启动;或者最简单的方式是用 screen(如果在 WSL 中)之类的手段进行管理。

七、常见问题

  1. 启动时报错

    • 先检查 config.json 的 JSON 格式有没有问题。
    • 确保端口未被占用,可以换个端口测试。
    • 确保私钥是通过 xray.exe x25519 生成且成功粘贴。
  2. 客户端连接失败

    • 检查防火墙是否放行了你指定的端口。
    • 确保 UUIDPublicKeySNIshortId 等和服务器一致。
  3. 怎么保持 Xray 长期运行?

    • 可以把 Xray 注册成 Windows 服务;也可以使用 NSSM (Non-Sucking Service Manager) 来管理。
    • 或者保持此窗口最小化,不关闭就行了(虽然不太优雅,但简单易行)。

八、总结

在 Windows 环境下搭建 Reality 节点的过程并不复杂,主要是:

  1. 下载并解压 Xray。
  2. 获取私钥和公钥、设置端口、配置 UUID 等。
  3. 运行 Xray 并在客户端填写正确参数即可。

这样我们就成功在 Windows 服务器上跑起了一个 Reality 节点!如果你在配置或使用过程中遇到任何问题,欢迎在评论区留言,或加入我的交流群来讨论,祝大家都能顺利搭建好属于自己的节点。

最后:

  • 记得给我点个关注或收藏!
  • 如果你喜欢我的内容,也欢迎分享给更多需要的人~

附:示例 config.json (仅供参考)
请根据实际需求自行修改端口、UUID、私钥、shortIds 等。

  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
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
{
  // 日志配置
  "log": {
    // access:访问日志路径
    // 设为 "none" 表示不记录访问日志
    "access": "none",
 
    // dnsLog:是否记录 DNS 相关日志
    "dnsLog": false,
 
    // error:错误日志路径,留空表示不写入文件
    "error": "",
 
    // loglevel:日志记录级别,可选 "debug"、"info"、"warning"、"error"、"none" 等
    "loglevel": "warning",
 
    // maskAddress:是否对日志中的 IP 地址进行掩码处理。留空表示不启用
    "maskAddress": ""
  },
 
  // 路由配置
  "routing": {
    // domainStrategy:域名匹配策略。常用值有 "AsIs"、"IPOnDemand"、"IPIfNonMatch" 等
    "domainStrategy": "AsIs",
 
    // rules:路由规则列表
    "rules": [
      {
        // type:规则类型,field 表示根据字段来匹配
        // inboundTag:指定哪些入站流量(Tag)使用此规则
        // outboundTag:匹配后流量转到哪个 outbound
        "type": "field",
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api"
      },
      {
        "type": "field",
        "outboundTag": "blocked",
        // ip:匹配指定的 IP 列表,这里使用 geoip:private 表示局域网 IP
        "ip": [
          "geoip:private"
        ]
      },
      {
        "type": "field",
        "outboundTag": "blocked",
        // protocol:匹配的协议,这里为 bittorrent,一般是为了屏蔽 BT 下载
        "protocol": [
          "bittorrent"
        ]
      }
    ]
  },
 
  // DNS 配置(此处为 null 表示未配置)
  "dns": null,
 
  // 入站配置
  "inbounds": [
    {
      // listen:监听地址
      "listen": "127.0.0.1",
      // port:监听端口
      "port": 62789,
      // protocol:入站协议类型,这里是 dokodemo-door
      "protocol": "dokodemo-door",
      "settings": {
        // address:dokodemo-door 对应的目标地址
        "address": "127.0.0.1"
      },
      "streamSettings": null,
      // tag:用于标识此入站的标签
      "tag": "api",
      "sniffing": null,
      "allocate": null
    },
    {
      // listen:默认值为 0.0.0.0 或系统默认监听
      "listen": null,
      "port": 你自己的,
      // protocol:vless
      "protocol": "vless",
      "settings": {
        // clients:配置用户信息
        "clients": [
          {
            "email": "win",
            // flow:仅在 XTLS 等场景使用,这里为空字符串
            "flow": "",
            // id:VLESS 用户的 UUID
            "id": "你自己的"
          }
        ],
        // decryption:VLESS 的加密方式,这里为 "none"
        "decryption": "none",
        // fallbacks:回落配置,一般用于分流或 TLS 透明代理。这里为空
        "fallbacks": []
      },
      // streamSettings:传输层配置
      "streamSettings": {
        // network:此处为 TCP
        "network": "tcp",
        // realitySettings:REALITY (V2Ray/XRay) 的相关配置
        "realitySettings": {
          // dest:伪装流量实际要连接的目标地址
          "dest": "yahoo.com:443",
          // maxClient、minClient 等一般用于限制客户端连接数量,这里留空或为默认
          "maxClient": "",
          "maxTimediff": 0,
          "minClient": "",
          // privateKey:REALITY 的私钥
          "privateKey": "你自己的",
          // serverNames:SNI,指定要伪装的域名可改可不改
          "serverNames": [
            "yahoo.com",
            "www.yahoo.com"
          ],
          // shortIds:定义一组短 ID,用于 REALITY 的握手阶段课改可不该
          "shortIds": [
            "2f"
          ],
          // show:是否在日志中显示调试信息
          "show": false,
          // xver:REALITY 的版本,通常为 0
          "xver": 0
        },
        // security:使用 REALITY
        "security": "reality",
        "tcpSettings": {
          // acceptProxyProtocol:是否接收 PROXY protocol 的头部
          "acceptProxyProtocol": false,
          "header": {
            // type:可以是 none、http、srtp、utp、wechat-video 等
            "type": "none"
          }
        }
      },
      "tag": "inbound-55044",
      // sniffing:是否开启流量嗅探
      "sniffing": {
        "enabled": false,
        "destOverride": [
          "http",
          "tls",
          "quic",
          "fakedns"
        ],
        "metadataOnly": false,
        "routeOnly": false
      },
      "allocate": {
        // strategy:端口分配策略(多端口)
        "strategy": "always",
        // refresh:刷新间隔(分钟),单位为分钟
        "refresh": 5,
        // concurrency:并发数(同时开放多少个端口)
        "concurrency": 3
      }
    }
  ],
 
  // 出站配置
  "outbounds": [
    {
      // tag:此出站标记为 direct,一般用于直连
      "tag": "direct",
      "protocol": "freedom",
      "settings": {
        // domainStrategy:与 routing 中的配置相对应
        "domainStrategy": "AsIs",
        // redirect:可指定将流量转发到某个特定地址和端口,这里为空
        "redirect": "",
        // noises:新版本中可能用于特殊混淆,此处留空
        "noises": []
      }
    },
    {
      // tag:此出站标记为 blocked,用于黑洞流量(丢弃)
      "tag": "blocked",
      "protocol": "blackhole",
      "settings": {}
    }
  ],
 
  // transport:传输配置,这里为 null 表示没有额外配置
  "transport": null,
 
  // policy:策略配置
  "policy": {
    // levels:不同权限等级的策略
    "levels": {
      "0": {
        // statsUserDownlink/statsUserUplink:是否统计下行/上行流量
        "statsUserDownlink": true,
        "statsUserUplink": true
      }
    },
    // system:全局系统策略
    "system": {
      // 是否统计入站/出站的下行/上行流量
      "statsInboundDownlink": true,
      "statsInboundUplink": true,
      "statsOutboundDownlink": false,
      "statsOutboundUplink": false
    }
  },
 
  // api:API 接口配置,可用于动态管理 Xray
  "api": {
    "tag": "api",
    // services:启用哪些 API 服务
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ]
  },
 
  // stats:流量统计配置,这里为空对象,表示默认
  "stats": {},
 
  // reverse:反向代理配置,这里为 null
  "reverse": null,
 
  // fakedns:假 DNS 配置,用于某些特殊场景
  "fakedns": null,
 
  // observatory:此为 Xray 新增的延迟检测功能,这里为 null
  "observatory": null,
 
  // burstObservatory:批量延迟探测配置,这里为 null
  "burstObservatory": null
}

只要确认格式无误,就能在 Windows 下直接用 .\xray.exe 启动成功!