要在同一台内网电脑上同时连接两个不同的 NPS 服务端,核心问题在于 Windows 服务的名称不能重复。
在你提供的命令中,两个服务都试图命名为 npc,这会导致第二个命令报错或覆盖第一个。你需要通过为每个服务指定不同的服务名称和不同的配置文件(或启动参数)来实现。
以下是详细的操作步骤:
第一步:准备两个独立的运行环境(推荐)
虽然可以共用一个 .exe,但为了避免日志冲突和管理混乱,建议将 npc.exe 复制到两个不同的文件夹:
- 文件夹 A:
D:\nps_client_1\(对应服务器 1) - 文件夹 B:
D:\nps_client_2\(对应服务器 2)
第二步:使用不同的服务名称创建服务
你需要使用 sc create 命令,并确保服务名(即 sc create 后面的字符串)是唯一的。
1. 创建第一个 NPS 客户端服务 (服务名:npc_server1)
以管理员身份运行 CMD,输入以下命令:DOS
sc create npc_server1 binPath= "D:\nps_client_1\npc.exe -server=nps服务器1的ip:8024 -vkey=xxxxh -type=tcp" obj= "LocalSystem" start= auto
2. 创建第二个 NPS 客户端服务 (服务名:npc_server2)
继续在管理员 CMD 中输入:DOS
sc create npc_server2 binPath= "D:\nps_client_2\npc.exe -server=nps服务器2的ip:8024 -vkey=xxxxxbncgg -type=tcp" obj= "LocalSystem" start= auto
第三步:启动服务
创建成功后,你需要手动启动这两个服务,或者重启电脑。 在 CMD 中分别输入:DOS
net start npc_server1
net start npc_server2
关键点详解
- 服务名称唯一化:
sc create后的npc_server1和npc_server2是在系统服务列表里显示的唯一标识。 - 路径与空格:
binPath=后面必须有一个空格 (这是sc命令的语法要求),且路径如果包含空格,必须用引号包裹。 - 权限要求: 必须使用 "以管理员身份运行" 的命令提示符,否则会报
Access Denied错误。
如何验证是否成功?
- 按下
Win + R,输入services.msc并回车。 - 在服务列表中寻找
npc_server1和npc_server2。 - 检查状态是否都显示为 "正在运行"。
- 登录两个 NPS 服务端的 Web 管理后台,确认两个客户端都处于 "在线" 状态。
进阶建议:使用配置文件
如果参数很多,建议将参数写入 conf/npc.conf 文件中,然后命令简化为: npc.exe -config=D:\path\to\config.conf 这样管理起来会更清晰,也不会因为 binPath 字符串过长导致创建服务失败。