实现目标:将局部网(可访问互联网)设备的端口映射到公网服务器上
1.资料准备
下载nps(server)和npc(client)安装包:https://github.com/ehang-io/nps/releases
文档:https://ehang-io.github.io/nps/#/
安装包版本(0.26.10 核心版本0.26.0)
![](https://img-blog.csdnimg.cn/408c46a909dc4c58868fa3842c3da9d7.png)
补充:公网服务器一般使用x64 的服务端,由于我的客户端是jetson nano 所以我选择了arm的客户端进行安装
2.公网服务器端的操作:
3.用浏览器配置nps 的操作:
![](https://img-blog.csdnimg.cn/0339c366de6d484ea98b08ea851023ca.png)
![](https://img-blog.csdnimg.cn/b3e920c88f744876b867010d852495df.png)
![](https://img-blog.csdnimg.cn/58ca98fb32c643b28b745e05c6412c8f.png)
4.客户端的操作:
![](https://img-blog.csdnimg.cn/949be68a622e4c38a62ecaa81a30de8d.png)
![](https://img-blog.csdnimg.cn/ed37fdebb38e429194dcf4787e4dbda1.png)
- 可以直接将启动命令放入rc.local 中,前npc是一个目录 后一个npc是命令
![](https://img-blog.csdnimg.cn/56fce806a0b2478bbaf40f91f7ff30fa.png)
5.验证是否成功
- 我用的MobaXterm进行ssh连接,填访问客户端的用户名和密码,不要填服务器的
![](https://img-blog.csdnimg.cn/7f28abfa94514dd58faf4d401fde19de.png)
- 可以通过ssh连服务器端口 连接到客户端 证明服务器8003和本地局域网设备的22端口互通
![](https://img-blog.csdnimg.cn/420396d264d2444aa75d99922bd3a117.png)
6. 服务器端 nps停止运行
![](https://img-blog.csdnimg.cn/83b9724b6b3e4f1a9515d9efa8a11eb5.png)
- web端进入不了服务器8080端口
- nps会出现断连的情况,不过会重新连接上,像是服务端挂了,暂时未找到原因
- connection refuse 是服务端tcp端口未被监听,也就是nps端挂了,一般会重启
- connection reset by peer 是nps服务端tcp连接出现异常给npc发了reset信号,让npc关闭tcp连接
- connetion time out 是网络不通,客户端连不上服务器
- close mux 关闭多路复用器