[Linux]内网穿透nps

文章目录

  • 基础文件下载
    • 项目地址
    • 下载地址
  • 客户端安装
    • 解压文件
    • 客户端启动
    • 客户端注册到linux系统服务
    • 客户端注册到windows系统服务
      • windows bat 一键管理员注册
      • windows bat 一键管理员取消

基础文件下载

项目地址

https://github.com/ehang-io/nps

下载地址

Releases · ehang-io/nps (github.com)
linux下载

window下载


应用场景:
内网机器(192.168.1.7)有安装服务端口8080
现有公网服务器: 177.77.7.7
想通过177.77.7.7:18808,访问到内网服务器上192.168.1.7:8080
公网服务器安装nps

安装服务
打开nps文件夹执行安装命令

sudo ./nps install

得到如下日志

[root@iZ2ze1fpjxqn44kvd7zk6tZ nps]# sudo ./nps install
2024/01/15 15:10:29 copy file ::/home/nps/conf/clients.json to /etc/nps/conf/clients.json
2024/01/15 15:10:29 copy file ::/home/nps/conf/hosts.json to /etc/nps/conf/hosts.json
......
2024/01/15 15:10:29 copy file ::/home/nps/web/static/webfonts/fa-solid-900.woff2 to /etc/nps/web/static/webfonts/fa-solid-900.woff2
2024/01/15 15:10:29 install ok!
2024/01/15 15:10:29 Static files and configuration files in the current directory will be useless
2024/01/15 15:10:29 The new configuration file is located in /etc/nps you can edit them
2024/01/15 15:10:29 You can start with:
nps start|stop|restart|uninstall|update or nps-update update
anywhere!

修改配置文件
打开nps文件夹(安装完成之后,需要修改/etc/nps/conf/nps.conf)
image.png

vim /etc/nps/conf/nps.conf

修改公网服务器地址与修改自定义的登录用户名密码
web管理页面访问端口

web_host=177.77.7.7
web_username=admin
web_password=admin1234
web_port = 20010

也可修改其他端口避免端口占用,nps默认配置文件使用了80,443,8080,8024端口

#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=20000
https_proxy_port=20001
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
##bridge
bridge_type=tcp
bridge_port=20003
bridge_ip=0.0.0.0

启动服务
打开nps文件夹执行启动命令

sudo nps start

得到如下日志

[root@iZ2ze1fpjxqn44kvd7zk6tZ nps]# sudo nps start
[root@iZ2ze1fpjxqn44kvd7zk6tZ nps]# 

登录公网服务器nps后台
浏览器访问:
177.77.7.7:20010
默认账号:admin
默认密码:admin1234

新增客户端
点击客户端,点击新增按钮

可不做配置添加一个

刷新后得到一个配置,点击第一列前的蓝色+号,

得到客户端命令


命令如下(linux)

./npc -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp

命令如下(windows)

npc -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp

客户端安装

解压文件

windows_amd64_client.tar.gz
得到

客户端启动

在当前目录下cmd指定命令(linux)

./npc -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp

(windows)

npc -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp

得到如下输出

2024/01/15 16:18:36.602 [I] [npc.go:231]  the version of client is 0.26.10, the core version of client is 0.26.0
2024/01/15 16:18:36.670 [I] [client.go:72]  Successful connection with server 177.77.7.7:20003

客户端注册到linux系统服务

./npc install -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp

客户端注册到windows系统服务

cmd管理员运行如下命令

npc.exe install -server=177.77.7.7:20003 -vkey=asczxcas1121 -type=tcp

查看服务列表可知,注册成功

修改启动逻辑

公网服务器web端绑定客户端端口
此时可看到客户端已在线


点击隧道


新增隧道
服务端端口,设置公网服务器的18808端口
目标端口设置内网服务器的8080端口


新增之后会显示在线


此时访问

177.77.7.7:18808/swagger-ui.html

即访问了内网服务器192.168.1.7:8080下的服务

附录
一下了两个文件以bat文件格式保存

windows bat 一键管理员注册

@echo &title npc
cd /d "%~dp0"
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit:Admin
cmd /k "chcp 65001 && npc install -server=177.77.7.7:20003 -vkey=ezggqbvl17g0yqgi -type=tcp"

windows bat 一键管理员取消

@echo &title npc
cd /d "%~dp0"
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit:Admin
cmd /k "chcp 65001 && npc uninstall"

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

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

相关文章

微服务第二轮

学习文档 背景 由于每个微服务都有不同的地址或端口,入口不同 请求不同数据时要访问不同的入口,需要维护多个入口地址,麻烦 前端无法调用nacos,无法实时更新服务列表 单体架构时我们只需要完成一次用户登录、身份校验&#xff…

想在VBA软件中做个登录验证会员授权,用什么云服务器好?

想在VBA中做个登录验证会员授权,用什么服务器好? 腾讯云99起,百度云50元起,不过也不知道到底是一整个虚拟机服务器, 装了WIN2012系统的,还是只是一个虚拟网站只给你一个文件夹可以上传PHP,ASP网页后台。 价…

6、组件通信详解(父子、兄弟、祖孙)

一、父传子 1、props 用法: (1)父组件用 props绑定数据,表示为 v-bind:props"数据" (v-bind:简写为 : ,props可以任意命名) (2)子组件用 defineProps([props&…

Java 编译报错:找不到符号? 手把手教你排查解决!

Java 编译报错:找不到符号? 手把手教你排查解决! 在 Java 开发过程中,我们经常会遇到编译器抛出 "找不到符号" 错误。这个错误提示意味着编译器无法在它所理解的范围内找到你所引用的类、变量或方法。这篇文章将带你一步…

一文学习yolov5 实例分割:从训练到部署

一文学习yolov5 实例分割:从训练到部署 1.模型介绍1.1 YOLOv5结构1.2 YOLOv5 推理时间 2.构建数据集2.1 使用labelme标注数据集2.2 生成coco格式label2.3 coco格式转yolo格式 3.训练3.1 整理数据集3.2 修改配置文件3.3 执行代码进行训练 4.使用OpenCV进行c部署参考文…

手写kNN算法的实现-用欧几里德空间来度量距离

kNN的算法思路:找K个离预测点最近的点,然后让它们进行投票决定预测点的类型。 step 1: kNN存储样本点的特征数据和标签数据step 2: 计算预测点到所有样本点的距离,关于这个距离,我们用欧几里德距离来度量(其实还有很多…

苍穹外卖笔记-07-菜品管理-增加、删除、修改、查询分页还有菜品起售或停售状态

菜品管理 1 新增菜品1.1 需求分析与设计1.2 代码开发文件上传新增菜品实现 1.3 功能测试 2 菜品分页查询2.1 需求分析和设计2.2 代码开发设计DTO类设计VO类Controller层Service层Mapper层 2.3 功能测试 3 删除菜品3.1 需求分析和设计3.2 代码开发Controller层Service层Mapper层…

机器学习——卷积神经网络

卷积神经网络CNN 多层感知机MLP的层数足够,理论上可以用其提取出二位特征,但是毕竟复杂,卷积神经网络就可以更合适的来提取高维的特征。 而卷积其实是一种运算 二维离散卷积的公式 可以看成g是一个图像的像素点,f是每个像素点对…

【计网复习】应用层总结(不含HTTP和错题重点解析)

应用层总结(不含HTTP和错题重点解析) 应用层简介 应用层的主要功能常见的应用层协议小林对于应用层通常的解释 网络应用模型 客户端-服务器模型(Client-Server Model, C/S) 特点优点缺点应用场景 对等网络模型(Peer-to…

IO流字符流(FileReader与FileWriter)

目录 FileReader 空参read方法 带参read方法👇 FileWriter void write(intc) 写出一个字符 void write(string str) 写出一个字符串 void write(string str,int off,int len) 写出一个字符串的一部分 void write(char[] cbuf) …

备战 清华大学 上机编程考试-冲刺前50%,倒数第5天

T1:多项式求和 小K最近刚刚习得了一种非常酷炫的多项式求和技巧,可以对某几类特殊的多项式进行运算。非常不幸的是,小K发现老师在布置作业时抄错了数据,导致一道题并不能用刚学的方法来解,于是希望你能帮忙写一个程序…

C语言 树与二叉树基础部分

树与二叉树基础部分 树的基础概念二叉树的性质二叉树的遍历前序遍历中序遍历后序遍历层序遍历根据遍历结果恢复二叉树 二叉树的创建第一种第二种 二叉树的其他典型操作查找指定元素(一般二叉树)二叉树的高度(深度)二叉树的拷贝二叉…

!力扣102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] /*** Definition for…

大模型应用工程化过程

近年来,以人工智能为代表的新一代信息技术加速应用,特 别是基于大模型、大数据、大算力的 ChatGPT 的发布,标志着人 工智能技术取得里程碑式突破,推动科技创新进入新阶段。随着 大模型技术的迅猛发展和场景价值的不断涌现&#xf…

9.2 Go 接口的实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Day44 代码随想录打卡|二叉树篇---找树左下角的值

题目(leecode T513): 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 方法:本题需要找二叉树左下角的值,因此该节点首先是在最后一行&#xff0…

搭建智慧互联网医院系统教学:源码解析与在线问诊APP开发

本篇文章,小编将以“源码解析与在线问诊APP开发”为切入点,详细介绍搭建智慧互联网医院系统的过程。 一、智慧互联网医院系统的架构设计 系统架构概述 -前端 -后端 -数据库 功能模块划分 -用户 -预约 -挂号 -问诊、 -病历 -管理 -药品 -配送…

Pytorch 从零实现 Transformer

前言 之前虽然了解过 Transformer 架构,但是没有自己实现过。 最近阅读 transformers 库中 Llama 模型结构,于是想试着亲手实现一个简单的 Transformer。 在实现过程中加深了理解,同时发现之前阅读 Llama 中一些错误的地方,因此…

【实战项目二】Python爬取豆瓣影评

目录 一、环境准备 二、编写代码 一、环境准备 pip install beautifulsoup4 pip intall lxml pip install requests我们需要爬取这些影评 二、编写代码 我们发现每个影评所在的div的class都相同,我们可以从这入手 from bs4 import BeautifulSoup import request…

Qwen2大模型微调入门实战(完整代码)

Qwen2是通义千问团队的开源大语言模型,由阿里云通义实验室研发。以Qwen2作为基座大模型,通过指令微调的方式实现高准确率的文本分类,是学习大语言模型微调的入门任务。 指令微调是一种通过在由(指令,输出)对…