一:背景
在项目开发过程中,免不了前后端联调,在公司同一局域网得情况下,可以直接访问到前后台得主机进行联调,但是如果前后端分别在不同得网络环境下,就无法进行直接联调。
二:常用内网穿透的弊端
我们常用得解决方案是用工具进行内网穿透,比如花生壳,Cpolar等内网穿透工具,来代理出来内网地址,进行前后端互相访问指定得主机端口。
用传统的方式有几大弊端:
- 这些工具一般都是需要进行注册,前后端都需要注册,并且实名认证。
- 这些工具进行内网穿透得时候,部分是需要收费得。
- 穿透代理得域名每次都会改变,前后端每次都需要重新配置地址
- 一般工具能够代理得端口只有一到两个,无法满足大部分业务测试联调需求。
- 免费得内网穿透带宽都很小。
所以为了解决这一现状,方便公司前后端异地联调,提供以下解决方案,NPS内网穿透服务器。
三:NPS代理
3.1 介绍
NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议,此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
3.2 优点
NPS代理服务器具备很多有点
- 不用用户注册实名认证,并且全免费
- 不用受制于端口数量,可以不限制得开端口
- 带宽速度由代理服务器决定
- 客户端配置简单
- 代理出来得地址不会变动,一直都可以用
- 实时监测客户端代理情况
- 成本不高,可以放到任意服务器上,所占开销不高
- 可以代理公司高性能本地服务器
3.3 配置需要什么
1. 一台拥有公网IP的云服务器
2. 一个已完成备案的域名,用来配置内网穿透泛域名访问,如不需要域名访问,也可以ip访问。
3. 客户端window10系统,客户端Linux系统
3.4 服务端搭建流程
1. 在公网linux服务器目录/usr/local下创建NPS文件夹
2.下载服务端文件
下载地址:Releases · ehang-io/nps · GitHub
目前最新版本:v0.26.10
3.将压缩文件放到NPS目录下并解压
4.修改配置文件
5.执行启动
以后台方式启动
3.5 服务端配置
输入账号密码
首页展示客户端的数量与在线数量,因为是配过的,所以有值
新增一个客户端,一个客户端配置,只能连接一个客户端(windows或者linux)
增加隧道后提示端口离线,现在去配置客户端
3.6 windows客户端配置
Windows客户端下载地址:
在电脑任何位置创建文件夹nps
将文件拷贝进去解压
然后执行启动命令:其中密钥是web客户端生成的密钥
npc.exe -server=ip:port -vkey=密钥 -type=tcp
连接隧道成功后提示已经在线
访问代理地址 可以访问windows本地服务
3.7 Linux客户端配置
Linux客户端下载地址:
在Liunx服务器/usr/local下创建nps文件夹
将linux文件解压到该文件目录下
然后执行启动连接隧道命令
即可连接成功,我们用服务器的21008代理本地服务器的22端口,以便我们能在xshell中可以访问服务器资源
然后在xshell中我们进行连接
输入公网ip与代理端口
成功进入本地服务器!