Windows server 搭建V2Ray服务,并使用NSSM配置守护进程,支持SSL加密

关于如何在Windows系统搭建V2Ray服务端,以及TLS加密和利用Nginx反代实现WebSocket进行伪装,设置NSSM守护进程,在Clash中使用
图片[1]-Windows server 搭建V2Ray服务,并使用NSSM配置守护进程,支持SSL加密-金点网络-全网资源,一网打尽

0.准备

有可用域名并已解析到服务器(用于伪装V2Ray)

V2Ray下载:https://github.com/v2fly/v2ray-core/releases

Certbot下载:Certbot(用于申请证书,也可用用其他工具在线申请)

NSSM下载:NSSM – the Non-Sucking Service Manager

V2Ray解压到任意目录(这里用 C:\v2ray )得到如下文件

  • v2ray.exe // 主程序
  • v2ctl.exe // 辅助工具
  • config.json // 配置文件
  • geosite.dat // 站点数据文件
  • geoip.dat // IP 数据文件

1.基础搭建V2Ray并运行

打开config.json编写配置文件

{
  "inbounds": [
    {
      "port": 18888,    // 端口,可自行更改
      "protocol": "vmess",   // 使用vmess协议
      "settings": {
        "clients": [
          {
            "id": "45cd6cec-8484-4469-8b7c-fc2a99185ba1",   // uuid,可自行更改
            "alterId": 0 
          }
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom", 
      "settings": {}
    }
  ]
}

打开“服务器管理器”,右上角“工具”,选择“本地安全策略”,在“出站规则”内放行端口

在v2ray根目录下按Shift+右键,然后点击”在此处打开PowerShell窗口“,输入

v2ray.exe run -c config.json

若输出 V2Ray started 提示则说明已经正常运行

此时已经可以正常使用了,接下来可以给V2Ray进行伪装

2.使用TLS加密传输数据

可以将V2Ray流量全程加密,特征更接近普通HTTPS流量

我更推荐使用下一种伪装方式,可以直接跳转到下一段

首先你需要申请一个域名证书:

可以安装Certbot,运行以下命令来申请证书

certbot certonly --standalone -d 域名

证书默认存储在 C:\Certbot\live\域名\ 目录下,包含:

  • fullchain.pem
  • privkey.pem

或者也可以用其他在线生成证书的工具

修改config.json配置文件新增“streamSettings”字段,修改后的文件如下:

{
  "inbounds": [
    {
      "port": 18888,   //本地端口,可自行更改
      "protocol": "vmess",   //使用vmess协议
      "settings": {
        "clients": [
          {
            "id": "45cd6cec-8484-4469-8b7c-fc2a99185ba1",   //uuid,可自行更改
            "alterId": 64 
          }
        ]
      },
      "streamSettings": {
        "network": "ws", 
        "security": "tls",   // 启用 TLS
        "tlsSettings": {
          "certificates": [
            {
              "certificateFile": "fullchain.pem",   // 更改为你的证书路径
              "keyFile": "privkey.pem"   // 更改为你的私钥路径
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom", 
      "settings": {}
    }
  ]
}

重启V2Ray以生效

TLS加密就完成了,但推荐使用下面这个更隐蔽的方法

3.利用Nginx反代实现WebSocket流量伪装

这可以将V2Ray流量完全伪装成HTTPS网站流量,且由Nginx提供高性能的 TLS 卸载,是抗封锁的常用方案

可以用宝塔面板给域名建站,方便后续操作

config.json配置文件新增“streamSettings”字段,修改后的文件如下:

{
  "inbounds": [
    {
      "port": 18888,   //本地端口,可自行更改
      "protocol": "vmess",   //使用wmess协议
      "settings": {
        "clients": [
          {
            "id": "45cd6cec-8484-4469-8b7c-fc2a99185ba1",   //uuid,可自行更改
            "alterId": 64 
          }
        ]
      },
      "streamSettings": {
        "network": "ws", 
        "wsSettings": {
        "path": "/ray"   //自定义路径
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom", 
      "settings": {}
    }
  ]
}

重启V2Ray以生效

然后需要在防火墙中放行443端口

接下来在宝塔面板打开对应网站的配置文件

在server中添加下面内容

    location /v2 {   # 与streamSettings.path一致
        proxy_pass http://127.0.0.1:18888;   # 转发到V2Ray的本地端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 使其他流量返回404
    location / {
        return 404;
    }

此时,访问 https://域名/ 应返回 404 Not Found ;访问 https://域名/path 应返回 Bad Request

若返回 502 Bad Gateway ,检查V2Ray是否在运行,检查V2Ray配置和Nginx配置的端口和路径是否一致

以上没有问题的话Nginx反代就完成了,下面是其他建议:

  • 启用SSL证书
  • 打开强制HTTPS
  • 给网站添加静态页面,使其看起来像正常网站
  • 将path修改为常见路径

4.NSSM守护进程

解压NSSM,进入根目录

按Shift+右键,点击”在此处打开PowerShell窗口“,安装服务

nssm install v2ray

在弹出的窗口中设置:

  • Path: C:\v2ray\v2ray.exe
  • Startup directory: C:\v2ray
  • Arguments: run -c C:\v2ray\config.json

启动服务

nssm start v2ray

查询服务状态

nssm status alist

5.Clash客户端配置

创建一个config.yaml文件

若使用第一步中最基础的配置

proxies:
  - name: "代理名"
    type: vmess
    server: ip   # 服务器IP或域名
    port: 18888   # v2ray设置的端口
    uuid: 45cd6cec-8484-4469-8b7c-fc2a99185ba1   # v2ray设置的uuid
    alterId: 0
    cipher: auto   # 加密方式(默认 auto)
    udp: true   # 可选,启用 UDP

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "代理名"

rules:
  - MATCH,PROXY

若使用TLS加密

proxies:
  - name: "代理名"
    type: vmess
    server: 域名   # 与所设证书域名一致
    port: 18888   # v2ray设置的端口
    uuid: 45cd6cec-8484-4469-8b7c-fc2a99185ba1   # v2ray设置的uuid
    alterId: 0
    cipher: auto
    tls: true   # 启用 TLS
    skip-cert-verify: false

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "代理名"

rules:
  - MATCH,PROXY

若使用Nginx反代

proxies:
  - name: "代理名"
    type: vmess
    server: 域名   # Nginx反代的域名
    port: 443   # HTTPS默认端口,不可修改
    uuid: 45cd6cec-8484-4469-8b7c-fc2a99185ba1
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: "/v2"   # 与服务端和Nginx所设一致
      headers:
        Host: 域名  # 与所设域名一致

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "代理名"

rules:
  - MATCH,PROXY

5.V2ray 客户端配置

  • 下载 V2Ray 客户端(如 V2RayN 或 Qv2ray)。

  • 添加服务器配置:

    • 地址:服务器 IP 或域名
    • 端口:18888(与配置一致)
    • 用户ID:45cd6cec-8484-4469-8b7c-fc2a99185ba1
    • 额外ID:64
    • 加密方式:默认 auto

更多规则可自行配置研究,可以通过二维码分享手机快速导入

在订阅选项卡中将config.yaml导入即可,关于Clash的详细教程就请自行寻找了

以上,V2Ray搭建到加密到使用

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享