Windows 搭建节点:手把手教你在 Windows 服务器上使用xray搭建 VLESS + TCP + Reality 实现高速科学上网
本文最后更新于 40 天前,其中的信息可能已经有所发展或是发生改变。

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


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

大家好,我是 Joey。今天想和大家分享一下,在 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 启动成功!


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

暂无评论

发送评论 编辑评论


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