下面是一篇基于以上字幕内容整理而成的博客文章,便于大家快速了解在 Windows 环境下搭建 Reality (Xray) 的流程。内容会以个人口吻撰写,并包含字幕中提到的关键步骤和注意事项。
在 Windows 服务器上搭建 Reality 节点教程
大家好,我是 Joey。今天想和大家分享一下,在 Windows 环境 下怎么去搭建 Reality(基于 Xray)节点。网上关于在 Linux 系统搭建的教程挺多,但 Windows 端的相关教程比较少见,很多都是两年前的内容。现在我们就一起看一下 2025 年最新 的操作步骤。
一、准备工作
-
一台 Windows 服务器
- 这里无论是本地虚拟机还是云服务器都可以,只要是 Windows 系统即可。
-
Xray 内核
- 到 Xray 项目 的 Release 页面,找到适合你系统架构的 Windows 64(或 32)版本。
- 下载并解压得到一堆文件,我们可以删除一些不用的文件,比如多语言说明等。只保留
xray.exe
(主程序)和geo*
数据库文件即可。
-
一个支持代码高亮的编辑器(可选)
- 你可能用普通文本编辑器也可以,但有代码高亮能让我们更容易看懂配置文件中的字段。
-
Reality 配置文件(示例)
- 我会在文末给出示例配置,大家只需根据需要改端口、UUID、私钥等内容即可。
二、校验 Xray 是否能够正常执行
- 打开 PowerShell(或 CMD),进入刚才解压的 Xray 文件夹目录。例如:
cd "C:\Users\Administrator\Desktop\xray-windows-64"
- 尝试运行
xray.exe
:.\xray.exe
- 如果报错,很可能是因为缺少配置文件,或当前目录下的默认
config.json
配置有误。我们需要先准备好正确的配置文件。
- 如果报错,很可能是因为缺少配置文件,或当前目录下的默认
三、编写(或修改)配置文件
在你解压的 Xray 文件夹里,可能已经有一个示例 config.json
,或者你可以新建一个。如果你的编辑器支持高亮,可以更直观地查看配置结构。
以下是大致需要修改的几个关键点(以 VLESS + Reality 为例):
-
端口
- 例如在
inbounds
下,将port
改成想使用的端口号码(只要未被占用就行)。 - 本文演示用
6666
作为示例端口。
- 例如在
-
UUID
- 每个用户都需要一个独立的 UUID。可以在 v2rayN 或其他工具里快速生成。
- 复制生成的 UUID 填入到
id
字段里。
-
Reality 私钥 (privateKey)
- 在 PowerShell 输入:
.\xray.exe x25519
它会生成一对公钥 (PublicKey) 和私钥 (PrivateKey)。
- 将私钥粘贴到配置文件的
"privateKey": ""
处;公钥则需要在客户端配置里使用。
- 在 PowerShell 输入:
-
shortIds(可选)
- 如果你的配置使用了
shortIds
,可以随意添加一串随机字符串(长度不超过 16 个字节)。这一步并不复杂,你可以用openssl rand -hex 4
(或者其他方式)随机生成即可。确保服务器和客户端匹配即可。
- 如果你的配置使用了
完成以上修改后,保存我们的 config.json
。注意一定要确保语法正确,最好使用支持 JSON 检查的编辑器或在线校验工具,避免出现逗号、引号等符号错误。
四、启动 Xray
- 再次打开 PowerShell,进入 Xray 文件夹目录:
cd "C:\Users\Administrator\Desktop\xray-windows-64"
- 执行启动命令:
.\xray.exe
- 如果没有报错,而且窗口保持“等待”状态,说明 Xray 已经成功运行了。
五、客户端配置
-
服务器地址
- 在你的客户端(如 v2rayN、Clash 等)里,服务器 IP 填写成 Windows 服务器的公网 IP。
- 端口就是上面选择的
6666
。
-
用户 UUID
- 与服务器上的配置一致。
-
Reality 模式
- 在 v2rayN 中,选择 VLESS → Reality,然后填入对应的公钥 (PublicKey)、短 ID (如果有的话) 等信息。
- 伪装域名 (SNI) 与服务器端 Reality 配置中的
serverNames
保持一致。 flow
一般为空,encryption
一般选 none。
-
测试连接
- 保存后查看延迟或直接通过浏览器测试是否可以正常访问国外网站。如果有延迟显示,且能访问外网,一般就说明成功了。
六、保持 Xray 运行
- 目前 Xray 直接在 PowerShell 窗口中前台运行,只要这个窗口开着,节点就保持可用。
- 如果想要在后台运行,你可以使用 Windows 的任务计划程序(Task Scheduler)或其他第三方工具,让 Xray 以服务形式自启动;或者最简单的方式是用
screen
(如果在 WSL 中)之类的手段进行管理。
七、常见问题
-
启动时报错
- 先检查
config.json
的 JSON 格式有没有问题。 - 确保端口未被占用,可以换个端口测试。
- 确保私钥是通过
xray.exe x25519
生成且成功粘贴。
- 先检查
-
客户端连接失败
- 检查防火墙是否放行了你指定的端口。
- 确保
UUID
、PublicKey
、SNI
、shortId
等和服务器一致。
-
怎么保持 Xray 长期运行?
- 可以把 Xray 注册成 Windows 服务;也可以使用 NSSM (Non-Sucking Service Manager) 来管理。
- 或者保持此窗口最小化,不关闭就行了(虽然不太优雅,但简单易行)。
八、总结
在 Windows 环境下搭建 Reality 节点的过程并不复杂,主要是:
- 下载并解压 Xray。
- 获取私钥和公钥、设置端口、配置 UUID 等。
- 运行 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
启动成功!
以上就是本次的全部内容,如果对你有所帮助,欢迎 点赞、评论、分享。我们下次再见!