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

大家好,我是 xy 。今天想和大家分享一下,在 Windows 环境 下怎么去搭建 Reality(基于 Xray)节点。网上关于在 Linux 系统搭建的教程挺多,但 Windows 端的相关教程比较少见,很多都是两年前的内容。现在我们就一起看一下 2025 年最新 的操作步骤。

一、准备工作

  1. 一台 Windows 服务器

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

  2. Xray 内核

    • Xray 项目 的 Release 页面,找到适合你系统架构的 Windows 64(或 32)版本。

    • 下载并解压得到一堆文件,我们可以删除一些不用的文件,比如多语言说明等。只保留 xray.exe(主程序)和 geo* 数据库文件即可。

  3. 一个支持代码高亮的编辑器(可选)

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

  4. Reality 配置文件(示例)

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

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

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

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

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

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

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

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

  1. 端口

    • 例如在 inbounds 下,将 port 改成想使用的端口号码(只要未被占用就行)。

    • 本文演示用 6666 作为示例端口。

  2. UUID

    • 每个用户都需要一个独立的 UUID。可以在 v2rayN 或其他工具里快速生成。

    • 复制生成的 UUID 填入到 id 字段里。

  3. Reality 私钥 (privateKey)

    • 在 PowerShell 输入:

      .\xray.exe x25519
      

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

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

  4. shortIds(可选)

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

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

四、启动 Xray

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

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

    .\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 等。

// 日志配置

"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 启动成功!


以上就是本次的全部内容,如果对你有所帮助,欢迎 点赞、评论、分享。我们下次再见!