内网穿透工具NPS(保姆级教程)
前言:
有时候我们受限于硬件设备和网络的的问题,无法将内网的大容量、高性能存储设备或计算设备对外访问。这个时候就会变的特别苦恼,上云呢成本太大,不用云呢公网又无法直接访问,这个时候怎么办呢,NPS它来了!!!!
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
GitHub地址:https://github.com/ehang-io/nps
下载地址:https://github.com/ehang-io/nps/releases/tag/v0.26.10
详细介绍参考文档:https://gitee.com/penry/nps?skip_mobile=true#nps
一、环境准备
1、带公网的服务器一台(以下均使用ECS代替)
,配置不用特别高
2、内网的Linux服务器或者Windows服务器
二、源码包下载
1、先在ECS上下载NPS的服务端包进行安装配置
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/freebsd_amd64_server.tar.gztar -zxf linux_amd64_server.tar.gz[root@qingtong nps]# ls
conf linux_amd64_server.tar.gz nps web
2、默认配置文件在conf目录下,也可以先启动在配置文件,启动后的配置文件在/etc/nps/conf/nps.conf
修改这个配置文件也是可以的
请参照下面的基础配置文件修改适配自己的配置
如需更高级的配置请参考:https://gitee.com/penry/nps?skip_mobile=true#nps
#应用程序的名称,此处为"NPS"。
appname = nps
#Boot mode(dev|pro)
#启动模式,可以是开发模式(dev)或生产模式(pro)。
runmode = dev#HTTP(S) proxy port, no startup if empty
#HTTP和 HTTPS代理的配置,包括代理服务器的IP和端口,以及是否只使用HTTPS代理。
http_proxy_ip=0.0.0.0
http_proxy_port=22000
https_proxy_port=22001
https_just_proxy=true#default https certificate setting
默认的HTTPS证书和私钥文件路径。
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key##bridge
#桥接(bridge)配置,定义桥接的类型、端口和IP。
bridge_type=tcp
bridge_port=22002
bridge_ip=0.0.0.0# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
#公共密码,客户端使用该密码连接到服务器。
public_vkey=123#Traffic data persistence interval(minute)
#Ignorance means no persistence
#流量数据持久化间隔,以分钟为单位。
#flow_store_interval=1# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
#日志级别,数值从0到7,表示从紧急(LevelEmergency)到调试(LevelDebug)。
log_level=7
#log_path=nps.log#Whether to restrict IP access, true or false or ignore
#是否限制IP访问。
#ip_limit=true#P2P配置,定义P2P的IP和端口。
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000#web
#Web管理界面的配置,包括主机名、用户名、密码、端口和IP。
web_host=a.o.com
web_username=admin
web_password=^hjkl/-321,
web_port = 22003
web_ip=0.0.0.0
#Web管理界面的基本URL路径。
web_base_url=
#Web管理界面是否启用SSL以及SSL证书和私钥文件的路径。
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
#Web API无需身份验证时允许访问的IP地址,以及用于加密的密钥。
auth_crypt_key =1234567812345678#allow_ports=9001-9009,10001,11000-12000
#允许连接的端口范围。TCP协议相关配置,包括模式、服务器端口和目标端口范围。
[tcp]
mode=tcp
server_port=22000-23000
target_port=22000-23000#Web management multi-user login
#允许用户登录、注册和更改用户名的配置。
allow_user_login=true
allow_user_register=true
allow_user_change_username=true#extension
#不同功能的开关,控制流量限制、速率限制、隧道数量限制、本地代理、连接数量限制、多IP支持以及系统信息显示等。
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false#cache
#HTTP缓存的配置,包括是否启用和缓存长度。
http_cache=false
http_cache_length=100#get origin ip
#是否在HTTP请求中添加原始IP头。
http_add_origin_header=false#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999#client disconnect timeout
#客户端断开连接的超时时间,单位为秒。
disconnect_timeout=60
安装成功后,对于linux,darwin,将会把配置文件和静态文件放置于/etc/nps/,并将可执行文件nps复制到/usr/bin/nps或者/usr/local/bin/nps,安装成功后可在任何位置执行
nps test|start|stop|restart|status
3、安装配置完成后打开web页面控制端输入配置文件里的账号密码登录
1)在左侧的导航栏点击客户端,然后根据提示新增客户端
2)新增客户端口新增TCP隧道与刚才新增客户端就行绑定(客户端ID与前边创建的客户端进行对应),服务端口的配置范围是配置文件里限制的,请依照配置文件来
4、在内网的Linux主机上安装NPC客户端进行内网穿透
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
#解压
tar -zxf linux_amd64_client.tar.gz
NPC客户端是不需要任何配置文件的,所以只需要程序就可以
复制此处的命令到内网的主机上执行
扩展知识:推荐大家使用第一种方法,至于区别请看下列对比
要将 NPC 客户端的输出重定向到后台或文件,你可以使用 shell 中的重定向功能。有两种常见的方法可以做到这一点:1、后台运行并保存输出到文件npc -server=xxx.xxxxxxx.xxx:22002 -vkey=qingtongqingc@test1 -type=tcp &> /var/log/npc.log &# 这将把 NPC 客户端的标准输出和标准错误输出都重定向到名为 npc.log 的文件,并且客户端在后台运行(使用 & 符号)。2、后台运行并将输出保存到文件但仅记录标准错误输出npc -server=xxx.xxxxxxx.xxx:22002 -vkey=qingtongqingc@test1 -type=tcp 2> /var/log/npc_error.log &# 这将把标准错误输出重定向到名为 npc_error.log 的文件,而标准输出仍然会显示在终端上。
5、确认没问题后进行验证
访问成功后就可以在任何地方去访问这台内网的机器
windows主机的添加方法类似,后续有时间会在更新,请大家持续关注~~~~~~~~
相关文章:

内网穿透工具NPS(保姆级教程)
前言: 有时候我们受限于硬件设备和网络的的问题,无法将内网的大容量、高性能存储设备或计算设备对外访问。这个时候就会变的特别苦恼,上云呢成本太大,不用云呢公网又无法直接访问,这个时候怎么办呢,NPS它来…...

最长公共子序列问题
构造最长公共子序列为什么要这样构造序列 for(int i1;i<n;i){int k;cin>>k;b[k]i;}for(int i1;i<n;i){int k;cin>>k;a[i]b[k];}并且为什么要求上升序列,是有什么数学知识包含在其中吗? 为什么在求最长公共子序列时,f[mid]大…...

服务器数据恢复—热备盘同步中断导致Raid5数据丢失的数据恢复案例
服务器数据恢复环境: 某单位一台服务器上有一组raid5阵列,该raid5阵列有15块成员盘。上层是一个xfs裸分区,起始位置是0扇区。 服务器故障&检测: 服务器raid5阵列中有硬盘性能表现不稳定,但是由于管理员长时间没有关…...

桥接模式-C++实现
桥接模式是一种结构型设计模式,它是将抽象部分和实现部分隔离,通过组合关系将抽象部分和实现部分解耦,使它们可以独立变化。 因此,桥接模式可以很好的处理两个或两个以上维度的变化。 举一个例子说明: 假设我们现在…...

PHP字符串函数的解析
在PHP中,字符串是一种常见的数据类型,用于存储和操作文本数据。PHP提供了丰富的字符串函数,用于执行各种字符串操作,包括截取、连接、替换、搜索等。在这篇文章中,我们将深入解析一些常用的PHP字符串函数,以…...

科研学习|研究方法——使用python强大的Statsmodel 执行假设检验和线性回归
如果你使用 Python 处理数据,你可能听说过 statsmodel 库。 Statsmodels 是一个 Python 模块,它提供各种统计模型和函数来探索、分析和可视化数据。该库广泛用于学术研究、金融和数据科学。 在本文中,我们将介绍 statsmodel 库的基础知识、如…...

设计模式——责任链模式
文章目录 责任链模式的定义场景示例责任链模式实现方案责任链模式扩展责任链模式的优缺点责任链模式在框架源码中的应用 责任链模式的定义 责任链模式又称职责链模式,是一种行为型设计模式。官方描述:使多个对象都有机会处理请求,从而避免请…...

nginx得if语句内proxy_pass不允许携带url部分,如何处理
在nginx中,proxy_pass指令不能直接携带URL部分。但是,可以使用rewrite指令结合正则表达式来处理URL部分。 下面是一个示例配置,演示如何使用rewrite指令将URL中的某个部分进行替换后传递给后端服务器: location /v100/{proxy_…...

CentOS7设置 redis 开机自启动
CentOS7设置 redis 开机自启动 步骤1.创建redis.service文件2.重新加载所有服务3.设置开机自启动4.自由地使用linux系统命令4.1.启动 Redis 服务4.2.查看 Redis 状态(-l:查看完整的信息)4.3.停止 Redis 服务4.4.重启 Redis 服务 步骤 如果你傲娇,不想拷贝࿰…...

C++虚函数(定义,作用,原理,案例)
一.定义: C的虚函数是在父类(基类)中声明的的函数,它可在子类(派生类)中重写。二.作用 虚函数的目的是实现多态性,即在程序运行时根据对象的实际类型确定调用哪个函数。三.使用方法: 在基类中声明虚函数时,需要在函…...

C#中.NET 6.0 控制台应用通过EF访问新建数据库
目录 一、 操作步骤 二、编写EF模型和数据库上下文 三、 移植(Migrations)数据库 四、编写应用程序并运行 前文已经说过.NET Framework4.8 控制台应用通过EF访问新建数据库,这里的数据据库要根据事先编写好的EF模型、经过一番操作&#x…...

conda创建pytorch环境报错
昨天训练数据的时候,发现Anaconda占用C盘达到了20G(暑假在cmd状态下安装的,默认下载到了C盘),心道再创建几个环境,C盘就要爆红了,于是重装Anaconda到了D盘,不过之后的初始化并不顺利…...

数据结构-插入排序实现
文章目录 1、描述2、代码实现3、结果4、复杂度 1、描述 待排序的数组分为已排序、未排序两部分; 初始状态时,仅有第一个元素为已排序序列,第一个以外的元素为未排序序列; 此后遍历未排序序列, 将元素逐一插入到已排序的序列中&am…...

CGlib动态代理和JDK动态代理
CGlib代理模式是一种基于字节码操作的代理模式,它通过生成被代理类的子类来实现代理功能。 CGlib通过继承被代理类,生成一个代理类的子类,并重写父类的方法,在方法的前后插入相应的代理逻辑。这种方式不需要被代理类实现接口&…...

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测
分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…...

Python OpenCV 视频抽帧处理并保存
上篇文章中基于OpenCV实现图像处理后,类似的,也可以对视频进行处理。OpenCV库可以将视频的每一帧读取出来,然后对每一帧图像做相应的操作,并保存成新的视频。 1. 读取视频,获取相关参数 import cv2 import numpy as…...

英伟达AI布局的新动向:H200 GPU开启生成式AI的新纪元
英伟达Nvidia是全球领先的AI计算平台和GPU制造商,近年来一直在不断推出创新的AI产品和解决方案,为各行各业的AI应用提供强大的支持。 最近,英伟达在GTC 2023大会上发布了一款专为训练和部署生成式AI模型的图形处理单元(GPU&#…...

Windows11 python3.12 安装pyqt6 pyqt6-tools
Windows11 python3.12 安装pyqt6比较容易,但pyqt6-tools一直安装不上去。出错信息如下: (venv) PS D:\python_project\pyqt6> pip install pyqt6-tools Collecting pyqt6-toolsUsing cached pyqt6_tools-6.4.2.3.3-py3-none-any.whl (29 kB) Collec…...

反弹Shell
概述 反弹shell(reverse shell)就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端…...

Guava RateLimiter的限流机制详解
限流是保护高并发系统的三种有效方法之一。另外两个分别是缓存和降级。限流在很多场景中都会使用到限制并发数和请求数。例如,在限时抢购的情况下,限流可以保护您自己的系统和下游系统不被巨大的流量淹没。 限流的目的是通过限制并发访问或请求或者限制…...

详解nginx的root与alias
在Nginx中,root和alias指令都可以用来指定Web服务器中的文件根目录。不过,它们之间有一些关键的区别。 root指令指定的是服务器根目录,是用于处理HTTP请求时所使用的默认根目录。例如,若root /var/www/html;,则访问htt…...

在HBuilderX中配置Vue Router的步骤
以下是在HBuilderX中配置Vue Router的步骤: 在项目中安装Vue Router,可以使用npm或yarn命令进行安装。 在src目录下创建routers.js文件,并在该文件中编写路由相关代码,例如: import Vue from vue import Router from …...

通过接口抓取公众号信息并群发
总体步骤 通过非官方接口,登陆公众号获取cookie、token通过token拼接需要的参数,请求被抓取的公众号列表数据通过列表数据获取文章内容解析文章内容并通过官方接口创建草稿通过非官方接口群发创建的草稿(非认证用户,已认证用户可以通过官方接…...

Python基础入门----如何通过conda搭建Python开发环境
文章目录 使用 conda 搭建Python开发环境是非常方便的,它可以帮助你管理Python版本、依赖库、虚拟环境等。以下是一个简单的步骤,演示如何通过 conda 搭建Python开发环境: 安装conda: 如果你还没有安装 conda,首先需要安装Anaconda或Miniconda。Anaconda是一个包含很多数据…...

计算机网络的体系结构
目录 一. 计算机体系结构的形成二. 协议与层次划分2.1 数据传输过程2.2 什么是网络协议2.3 网络协议的三要素2.4 协议有两种形式2.4 各层协议2.5 什么是复用和分用 \quad 一. 计算机体系结构的形成 \quad 计算机网络是一个非常复杂的系统, 相互通信的两个计算机系统必须高度协调…...

cesium雷达扫描(模糊圆效果)
cesium雷达扫描(模糊圆效果) 1、实现思路 使用ellipse方法加载圆型,修改ellipse中‘material’方法重写自己的glsl来实现当前效果 1、示例源码 index.html <!DOCTYPE html> <html lang="en"><head><!<...

windows安装wsl2以及ubuntu
查看自己系统的版本 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令 在设置,系统里面就能看到 开启windows功能 直接winQ搜 开启hyber-V、使用于Linux的Windows子系统、虚拟机平…...

音视频项目—基于FFmpeg和SDL的音视频播放器解析(十二)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...

键鼠自动化2.0树形结构讲解
介绍 在键鼠自动化2.0中使用Qtc实现了全自定义树形结构,实现任务的拖拽,复制粘贴,撤销重做,以及包括树形结构增加序号展示,以及增加搜索功能 实现 1.自定义节点 // 自定义节点类 class TreeNode : public QObject …...

2023年【金属非金属矿山安全检查(地下矿山)】考试报名及金属非金属矿山安全检查(地下矿山)最新解析
题库来源:安全生产模拟考试一点通公众号小程序 金属非金属矿山安全检查(地下矿山)考试报名参考答案及金属非金属矿山安全检查(地下矿山)考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山安全检查&#…...