Skip to content

Latest commit

 

History

221 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vnts

Ask DeepWiki

vnt的服务端

说明

  1. 支持quic、tcp(tls)和wss协议,会自动生成自签名证书,也可以手动替换
  2. 无参数启动后,会输出配置文件,可以修改配置文件
  3. --conf-example 参数查看配置文件示例
  4. 可选启用内置 IKEv2/IPsec(UDP 500/4500),让系统原生 VPN 客户端以独立设备加入指定 VNT 网络
  5. 可选启用内置 WireGuard(默认 UDP 51820),生成标准客户端配置并作为独立设备加入 VNT 网络

IKEv2/IPsec

推荐先在 Web 管理端的“系统设置 → IKEv2/IPsec 基础配置”设置监听、服务器地址、远程ID和证书,再到“网络详情 → 新增设备”创建 IKEv2 类型设备。服务器地址是生成接入步骤时提供给客户端的单个连接地址;远程ID是服务端 IKE 身份并用于匹配证书。每台 IKEv2 客户端使用独立的用户名和密码,用户名同时作为设备 ID。没有 [ikev2] 时页面会提供默认监听值;cert/key 留空会自动建立本地 CA,并签发匹配域名或 IPv4 远程ID的 RSA-2048 服务器证书。也可以填写自定义证书链和私钥路径。ESP 数据面统一使用 UDP/4500 NAT-T。

IKEv2 客户端从对应网络的地址池获取虚拟 IP,并可跨互联服务端通信;启用了 white_list 时也要包含这些网络编号。普通 VNT 节点必须显式配置 allow_ikev2 = true 才会看到并接受 IKEv2 流量。

系统设置可编辑服务开关、UDP 500/4500 监听、服务器地址、远程ID、DNS 和证书路径;网络详情的设备列表负责管理 IKEv2 设备及凭据。保存全局设置后会自动启动、停止或热加载 IKEv2 服务;每个 IKEv2 设备的操作栏提供 CA 下载和 Windows、macOS/iOS、Android、strongSwan 接入步骤。

客户端只支持 EAP-MSCHAPv2 用户名/密码认证:连接地址使用 server_address,服务器身份使用 remote_id,用户名和密码来自对应 IKEv2 设备的接入说明,并在系统中信任签发 IKE 证书的 CA。Android 必须在 VPN 配置的“IPSec CA 证书”中明确选择该 CA,不能选择“不验证服务器”;其原生客户端默认发送空的 outer EAP Identity,服务端会在后续 MSCHAPv2 Response 中按用户名选择设备凭据。Windows 原生客户端创建 VPN 时可将连接名称填写为 VNT-IKEv2。接入说明中的第一条 PowerShell 命令用于配置与服务端匹配的 IKE/ESP 加密算法和 DH 组;第二条命令 Set-VpnConnection -Name "VNT-IKEv2" -SplitTunneling $true 用于启用拆分隧道,仅将 VNT 虚拟网段流量送入 VPN,避免 VPN 接管系统默认路由。如果创建 VPN 时使用了其他连接名称,两条命令中的 VNT-IKEv2 也必须替换为相同名称。修改后需断开并重新连接 VPN。PPP 适配器显示 /32 子网掩码和 0.0.0.0 默认网关是点对点连接的正常表现。

WireGuard

在 Web 管理端的“系统设置 → WireGuard 服务”中设置独立 UDP 监听地址和客户端可访问的公开 Endpoint。首次保存时会自动生成并持久化服务端私钥;管理 API 只公开对应公钥。

随后在网络详情中新增 WireGuard 类型设备。系统会自动生成并保存设备密钥,设备操作栏可随时查看、复制或下载标准 .conf。生成配置的 AllowedIPs 固定为该设备所属虚拟网段,不会接管默认路由。WireGuard 设备必须预先创建,未知公钥无法完成握手。

WireGuard、IKEv2 和 VNT 设备支持本地及跨服务端单播互通。普通 VNT 客户端必须在注册请求中设置 allow_wireguard = true 才会发现 WireGuard 设备并接受其流量;该开关与 allow_ikev2 相互独立。当前服务端支持 IPv4,暂不支持 WireGuard IPv6 和跨服务端广播。

Web 管理端(前端)

前端基于 Vue 3 + Vite + Tailwind CSS,源码位于 frontend/,构建产物输出到 static/ (由 rust-embed 内嵌到服务端二进制,随二进制对外提供)。

开发调试

cd frontend
pnpm install
pnpm dev          # 启动 Vite dev server (http://localhost:5173)
                  # 已配置 /api 代理到 http://localhost:29871,需先运行后端

后端默认 Web 端口为 29871,如修改了配置中的 web_bind,可通过环境变量指定代理目标:

VITE_API_TARGET=http://localhost:自定义端口 pnpm dev

构建

cd frontend
pnpm build        # 类型检查 + 构建,产物写入 ../static/

About

vnt server

Resources

Stars

394 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages