【工具】NPS 内网穿透搭建

背景

在日常开发中经常会涉及到使用公网某个端口进行开发调试的情况,但我们日常开发的机器IP是非公网IP,所以需要使用内网穿透的手段,使我们的服务在公网上能被访问到。
常用的内网穿透工具分两大类,一类是付费/免费服务,即人家已经搭建好了,我们需要通过某种方式进行配置就可使用,该方式下我们无需自有公网IP,类似工具有花生壳;另一类为开源工具,如FRP、NPS等工具,这类工具需要我们具备一台有公网IP的机器。
本教程基于docker、immortalwrt配置,其中服务端通过docker启动,客户端为immortalwrt,注:其他客户端也类似,需要去https://github.com/ehang-io/nps 下载相应的客户端,另外这里指的公网也不一定要真的公网,取决于实际需求,能够相互访问即可。

NPS配置

假如现有公网服务器A(IP:123.123.123.123),为了简化安装过程,在该服务器安装上docker、docker compose,参考docker官网。

启动NPS服务

使用如下docker-compose.ymal

version: '3.6'
services:
  nps:
    image: zhangsean/nps
    restart: always
    container_name: nps
    privileged: true
    environment:
      NPS_MODE: server
      NPS_BRIDGE_TYPE: tcp
      NPS_BRIDGE_PORT: 8024 # 与后面开放的端口对应,该端口是客户端与服务端通信端口
      NPS_PUBLIC_VKEY: # 自己给定一个vkey
      NPS_HTTP_PROXY_PORT: 8085 # 与后面开放的端口对应,该端口是反向代理与nps通信端口,可直接绑定80/443端口
      NPC_CONN_TYPE: tpc
    ports:
      - "8024:8024"
      - "8085:8085"
      - "8080:8080"  # 默认的web管理端口
    volumes:
      - ./nps/conf:/conf # 这里将配置文件挂载到宿主机上,防止因为重启导致配置丢失

有了上述docker-compose 文件,使用docker compose up -d将服务拉起,就完成了服务端的启动,如果有防火墙,需要将暴露端口放行,其中 web 管理端口为了安全,只需某种方式能访问即可,不一定要公网直接访问。

配置NPS服务端

进入NPS服务端进行配置,使用服务器A(IP:123.123.123.123)的地址进入服务端,这里即8080端口,如果公网暴露,其url应该是http://123.123.123.132:8080,进入后会得到如下界面,然后使用用户名、账号登陆nps
nps界面
来到客户端这边,我们需要新增一个客户端
新增客户端
填入客户端信息
新增客户端
在添加客户端成功后,我们可以得到如下信息,其中【客户端命令】是在github下载的客户端的情况下使用的,如下载了一个windows、linux、macos客户端,就可以直接用该命令连到nps上,但这里是在路由器上配置,只需要记住这里的【唯一验证密钥】即可
在这里插入图片描述
至此,服务端配置完成了一半,等客户端上线后,参考后续配置,接下来需要配置客户端。

客户端配置

客户端安装

登陆到我们的路由系统中,通过如下操作安装
在这里插入图片描述
在弹出的提示中点击安装
在这里插入图片描述

客户端安装完成截图
在这里插入图片描述
安装完成后,需要重启一下
在这里插入图片描述
重启后再次登陆路由系统,根据提示输出下面三部分内容,其中vkey为上面服务器生成的【唯一验证密钥】,这里的配置与服务端的客户端配置保持一致即可
在这里插入图片描述
至此,客户端配置完毕,后续继续配置服务端

穿透配置

客户端连接成功后,服务端可以看到如下信息,即客户端当前已经在线
在这里插入图片描述
假如我们的局域网网段为【192.168.3.0/24】,路由器IP为192.168.3.1,现在局域网内有台设备B的IP为 192.168.3.10,需要将设备B的8000端口暴露到公网上使其能够访问,这里有两种方式,一种是域名访问,一种是端口访问。

端口访问

在这里插入图片描述
添加上述配置后,就能使用123.123.123.123:8090 来访问 服务(192.168.3.10:8000)

域名访问

该方式下需要提前配置域名解析,可以通过修改hosts文件方式实现,也可以通过域名解析实现,此处略过。
在这里插入图片描述
完成配置后,即可通过访问你自己的域名地址来访问到内网服务了。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值