世界杯进球最多

实现目标:将局部网(可访问互联网)设备的端口映射到公网服务器上

1.资料准备

下载nps(server)和npc(client)安装包:https://github.com/ehang-io/nps/releases

文档:https://ehang-io.github.io/nps/#/

安装包版本(0.26.10 核心版本0.26.0)

补充:公网服务器一般使用x64 的服务端,由于我的客户端是jetson nano 所以我选择了arm的客户端进行安装

2.公网服务器端的操作:

建好nps文件夹,进入文件夹,下载好nps服务端,移入文件夹中并进行安装

tar xzvf linux_amd64_server.tar.gz

./nps install

nps start

ps -ef|grep nps # 查看进程

nps --version # 查看版本

卸载命令

nps uninstall

公网服务器上加安全组开放所需要的端口(或者全部打开1-65535),打开类型可以是UDP类型,也可以是TCP类型、HTTP类型

出方向: 是指 本ECS 实例访问内网或私网中其他 ECS 实例或者公网上的资源。 入方向: 是指内网或私网中的其他 ECS 实例或公网上的资源访问 本ECS 实例

3.用浏览器配置nps 的操作:

公网服务器IP+8080 例如我的:47.113.149.105:8080 用户名 admin 密码123

添加客户端

给该客户端加TCP隧道

4.客户端的操作:

建立nps文件夹,将客户端压缩包放入文件夹中,解压nps客户端(arm64)

tar xzvf linux_arm64_client.tar.gz

./npc -server=47.113.149.105:8024 -vkey=br0auqkcoat879fs -type=tcp

运行上面生成的需要在客户端执行的命令,8024端口(nps默认的桥接端口)

web端显示在线

注册系统(自启动,守护进程)

可以直接将启动命令放入rc.local 中,前npc是一个目录 后一个npc是命令

5.验证是否成功

我用的MobaXterm进行ssh连接,填访问客户端的用户名和密码,不要填服务器的

可以通过ssh连服务器端口 连接到客户端 证明服务器8003和本地局域网设备的22端口互通

6. 服务器端 nps停止运行

客户端打印

web端进入不了服务器8080端口

nps会出现断连的情况,不过会重新连接上,像是服务端挂了,暂时未找到原因

connection refuse 是服务端tcp端口未被监听,也就是nps端挂了,一般会重启

connection reset by peer 是nps服务端tcp连接出现异常给npc发了reset信号,让npc关闭tcp连接

connetion time out 是网络不通,客户端连不上服务器

close mux 关闭多路复用器