不得不说nps真的好用。我的使用场景是这样的:
A设备(Client;port 8000,8001)---------路由器-------》云服务器----------》B设备(Server;port:8000,8001)
A B 分别位于天涯海角。 A通过UDP 连接B,然后AB再两个端口上边互相通信。
NPS为这种方式提供了可能,frp也可以应该,但是frp看起来有点复杂,我是没整明白。nps参照如下的入门。
https://blog.csdn.net/superDE009/article/details/99700179
A目标地址就是服务器地址和端口(ip+8000),然后服务器通过多NPS代理到B的内网(8000),Over。。。理解这个非常关键
概括起来讲,就是服务器安装好后,启动服务器对应的web,然后添加客户端和UDP隧道,注意 隧道的目标地址 是B的地址 ,我这个地方掉坑里很久才出来。注意,先添加客户端,添加隧道的时候要用到客户端的ID, 然后B 安装nps客户端npc. 要注意的是现npc install , 再npc start。 npc start最好是再cmd下边以管理员身份运行cmd, 命令可以从服务器web那边粘贴过来直接使用。
遇到的问题:
1、客户端启动报错:net: getaddrinfow: The specified class was not found ,https://github.com/golang/go/issues/25553, 是客户端配置文件 服务器地址后边不能有任何字符,如下8024后边不能有空格
server_addr=113.45.118.167:8024
conn_type=udp
2、用poweshell启动客户端启动不起来(管理员身份也不行),要么了用gitbash 或者cmd直接运行吧。
3、像我这种两个端口的,就要启动两个客户端,服务器上边也配置两个客户端和对应的udp隧道。
udp我还是比较熟悉的, 基础的就不讲了,网上能查到,有什么问题可以给我留言
脚本的启动这里 补充一个批处理方式,如果npc.exe在运行了就先停止这个进程 再重新启动一个新的
@echo off
tasklist|find /i "npc.exe"
if %errorlevel%==0 (taskkill -f -im npc.exe)
start D:\npc_8301\npc.exe -server=IP:port -vkey=b6j276henvhm5h1r -type=tcp
start D:\npc_8300\npc.exe -server=IP:port -vkey=uouxqam8r1wuq4s5 -type=tcp