【工具】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/npsrestart: alwayscontainer_name: npsprivileged: trueenvironment:NPS_MODE: serverNPS_BRIDGE_TYPE: tcpNPS_BRIDGE_PORT: 8024 # 与后面开放的端口对应,该端口是客户端与服务端通信端口NPS_PUBLIC_VKEY: # 自己给定一个vkeyNPS_HTTP_PROXY_PORT: 8085 # 与后面开放的端口对应,该端口是反向代理与nps通信端口,可直接绑定80/443端口NPC_CONN_TYPE: tpcports:- "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文件方式实现,也可以通过域名解析实现,此处略过。
在这里插入图片描述
完成配置后,即可通过访问你自己的域名地址来访问到内网服务了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610498.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git修改本地提交历史邮箱地址

1、Git(Git) 2、修改Git本地提交历史中的邮箱地址 使用 git rebase 命令进行交互式重置。 具体步骤如下:(https://git-scm.com/docs/git-rebase) 1、查看提交历史: 使用 git log 命令列出提交历史&#x…

09 Php学习:数组和排序

数组概念 在PHP中,数组是一种复合数据类型,用于存储多个值。以下是关于PHP数组的详细解释: 索引数组:索引数组是最基本的数组类型,其中每个元素都有一个唯一的数字索引,从0开始递增。 关联数组&#xff…

标注平台工作流:如何提高训练数据质量与管理效率

世界发展日益依托数据的驱动,企业发现,管理不断增长的数据集却愈发困难。数据标注是诸多行业的一个关键过程,其中包括机器学习、计算机视觉和自然语言处理。对于大型语言模型(LLM)来说尤是如此,大型语言模型…

【经验分享】如何一眼识破真假六西格玛培训公司?

随着六西格玛热度的不断升温,市场上也涌现出了形形色色的六西格玛培训公司。如何在众多培训机构中挑选出真正专业、有价值的六西格玛培训公司?本文将为大家揭开这一神秘面纱,让您轻松辨别真伪,找到适合自己的培训公司。 一、看背景…

【优选算法专栏】专题十六:BFS解决最短路问题(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

Day96:云上攻防-云原生篇Docker安全系统内核版本漏洞CDK自动利用容器逃逸

目录 云原生-Docker安全-容器逃逸&系统内核漏洞 云原生-Docker安全-容器逃逸&docker版本漏洞 CVE-2019-5736 runC容器逃逸(需要管理员配合触发) CVE-2020-15257 containerd逃逸(启动容器时有前提参数) 云原生-Docker安全-容器逃逸&CDK自动化 知识点&#xff1…

从unique_ptr看空基类优化

序 我们今天从unique_ptr出发一点一点来看下空基类优化(empty class optimization,EBCO)的概念,同时可以进一步熟悉unique_ptr,tuple等。最终可以帮我我们写代码进行一些取舍和优化。 如果感兴趣还请点个赞&#xff0…

遥控小车电子方案

遥控小车的功能开发主要包括以下几个方面: 1.基本功能开发: 前进、后退、左转、右转:通过遥控器上的控制按钮,实现小车的前进、后退、左转和右转。加速、减速:通过遥控器上的油门控制按钮,实现小车的加速…

ubuntu如何截图? ubuntu中截屏的三种方法

文章目录 1.ubuntu主要用途2.ubuntu如何截图?2.1 方法一:键盘按键快捷键截屏 2.2 方法二:系统自带软件2.3 方法三:第三方软件 Reference 1.ubuntu主要用途 1、桌面操作系统:Ubuntu可用作个人电脑或笔记本电脑的操作系…

AcWing-直方图中最大的矩形

131. 直方图中最大的矩形 - AcWing题库 所需知识:单调栈 思路:要求最大矩形,所以需要使矩形的高与长的乘积最大即可,依次从左到右将每一列当作中心列,向两边扩散,直到两边的高都小于该列的高,…

React复习全攻略:顶级理解Hooks君王秘术

前瞻 好家伙,在重温 React,了解其的历史版本迭代的过程中,发现了一个令人震惊的事情。 就是以前函数组件那般默默无闻,说是类组件的陪衬品也不为过,而如今,ta 的威名已然盖过了类组件。 这期间的转变历程…

wpf下如何实现超低延迟的RTMP或RTSP播放

技术背景 我们在做Windows平台RTMP和RTSP播放模块对接的时候,有开发者需要在wpf下调用,如果要在wpf下使用,只需要参考C#的对接demo即可,唯一不同的是,视频流数据显示的话,要么通过控件模式,要么…