基于NPS的穿透方案
撰文:liweinan (阿男) · GitHub / beyoung (beyoung) · GitHub
npc是一个基于go语言开发的穿透方案,它的项目地址在这里:
安装包在这里:
它需要同时在公网和私网两边的主机进行安装,下面是架构图:
下面讲解详细的安装过程。首先是服务端的安装。
服务端的安装配置过程
安装服务端
首先是服务器的安装。服务端的主机是阿里的云主机。从npc的release页面下载安装包:
- https://github.com/ehang-io/nps/releases
下载好对应平台的安装包。解压后安装目录如下:
启动前按照自己主机具体情况,更改端口和web端登录用户名和密码。bridge配置为client链接端口:
为访问web控制台访问端口,修改下默认用户名和密码:
nps启动有两种方式:
- 直接启动(直接执行可运行文件)
- 安装启动。具体文档参考:Document
启动好server,登录web控制台:
服务端安装配置好以后,在服务端配置一个client:
服务端配置client
客户端要连接上server,首先得在控制台新建一个 client。点击左侧客户端
,如图:
点击「新建」:
运行状态如下:
Basic认证可不填写。此时,客户端可连接上server。接下来是安装客户端。
客户端的安装过程
在我们实际的部署环境里,私网这边的主机使用的是一台树莓派:
在这边我们需要安装一下::armv7::版本的npc_client:
下载安装包以后,解压缩就算是安装好了,然后使用下面的命令连接服务端:
./npc -server=<public_ip>:8024 -vkey=alchemy-studio
客户端连接过程如下:
连接成功后服务端会显示客户端连接信息:
客户端连接一列显示 在线
。
此时要通过ssh连接上这个树莓派节点,还需要新建一个tcp隧道,点击截图红框中的隧道,
此时新建隧道:
服务端端口为服务器上需要新开端口,也是ssh -p
时候需要用到的端口,这个端口需要在防火墙里面方形(如果是云服务器,得去安全控制里面放行)。目标端口为树莓派的ssh端口,这里为22
。
此时这个树莓派的私有节点就和阿里云的云主机节点建立了tunnel,我们就可以通过阿里云主机的节点的公网ip地址来访问树莓派的ssh服务了。
可以随便找一台设备(例子里使用手机上的ssh客户端),连接阿里云的ip地址和服务端口(注意服务端口不是22端口,因为云主机的22端口在自己用,而映射树莓派的ssh的服务端口另外设置):
设置完成后,下面是连接情况:
此时可以看到,我们通过公有云主机节点,通过ssh的方式,穿透登录到了私有节点树莓派主机上。
以上就是npc的一个使用场景。通过这样一个tunnel,我们还可以完成很多别的事情,比如通过ssh tunnel映射vnc服务,或者把私有节点的服务反向暴露给公有云节点,形成一个::混合云::的架构。比如应用在炼金工房的混合云架构里:
以上就是npc穿透方案的一个介绍。
- 上一篇 RESTEASY-2505工作笔记(四)
- 下一篇 (ruby)使用Sinatra