[Linux]内网穿透nps

news2024/11/24 19:52:35

文章目录

  • 基础文件下载
    • 项目地址
    • 下载地址
  • 客户端安装
    • 解压文件
    • 客户端启动
    • 客户端注册到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.coloradmin.cn/o/1806239.html

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

相关文章

12.打渔还是晒网

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/17 题目描述 有句俗话叫“三天打渔,两天…

VBA高级应用30例应用2实现在列表框内及列表框间实现数据拖动

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…

AI大模型学习(非常详细)零基础入门到精通,收藏这一篇就够了

前言 随着人工智能技术的快速发展,AI大模型学习正成为一项备受关注的研究领域。为了提高模型的准确性和效率,研究者们需要具备深厚的数学基础和编程能力,并对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法,AI大模…

【西瓜书】9.聚类

聚类任务是无监督学习的一种用于分类等其他任务的前驱过程,作为数据清洗,基于聚类结果训练分类模型 1.聚类性能度量(有效性指标) 分类任务的性能度量有错误率、精度、准确率P、召回率R、F1度量(P-R的调和平均)、TPR、FPR、AUC回归…

关系数据库标准查询语言-SQL-SQL语言概述

一、SQL(Structured Query Language)语言 1、是高度非过程化的语言 2、关系数据库管理系统(RDBMS)都支持SQL标准 3、具有定义、查询、更新、控制四大功能 4、数据库对象由数据库(Database)、基本表(Table)、视图(V…

Spark参数配置不合理的情况

1.1 内存设置 💾 常见的内存设置有两类:堆内和堆外 💡 我们作业中大量的设置 driver 和 executor 的堆外内存为 4g,造成资源浪费 📉。 通常 executor 堆外内存在 executor.cores1 的时候,1g 足够了&…

都怪我当初没有好好了解你,Java虚拟机(JVM)

初始JVM JVM本质是一个运行在计算机上的程序,作用是运行Java字节码文件。 下面是它的运行流程: 看完上述运行过程,现在提出一个问题:Java是编译型语言还是解释型语言? 这里先补充什么是编译,什么是解释&am…

电子阅览室有何作用

随着互联网的快速发展,电子阅览室逐渐成为人们获取知识的新方式。它为读者提供了便捷、高效的阅读体验,具有诸多作用。首先,电子阅览室拥有丰富的电子书籍资源,涵盖了各个领域的知识。无论是文学作品还是学术论文,读者…

(Proteus仿真设计)基于51单片机的电梯程序控制系统

(Proteus仿真设计)基于51单片机的电梯程序控制系统 一.项目介绍 本设计模拟的是一个五层的,各楼层间隔为4.5m的电梯程序控制系统,能够完成各楼层乘客的接送任务。形象地说,就是要对不同楼层乘客的不同需求&#xff0…

Python第二语言(八、Python包)

目录 1. 什么是Python包 2. 创包步骤 2.1 new包 2.2 查看创建的包 2.3 拖动文件到包下 3. 导入包 4. 安装第三方包 4.1 什么是第三方包 4.2 安装第三方包-pip 4.3 pip网络优化 1. 什么是Python包 包下有__init__.py就是包,无__init__.py就是文件夹。于Ja…

Python中报错提示:TypeError: Student() takes no arguments

Python中报错提示:TypeError: Student() takes no arguments 在Python编程中,类是创建对象的蓝图。每个类都可能包含一个特殊的方法__init__,我们称之为构造函数,它在创建新实例时被调用。如果你在尝试创建一个类的实例时遇到了Ty…

SpringBoot+Vue墙绘产品展示交易平台(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户管理员 功能截图

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

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

知识图谱的应用---智慧交通

文章目录 智慧交通典型应用 智慧交通 现代城市发展过程中的一大问题是交通拥堵,为解决城市发展中的这一顽疾,有必要以现代化高科技技术为支撑,建造城市中的智慧交通系统,从源头入手缓解城市拥挤问题。当前,“智慧交通”…

6月7号作业

1, 搭建一个货币的场景,创建一个名为 RMB 的类,该类具有整型私有成员变量 yuan(元)、jiao(角)和 fen(分),并且具有以下功能: (1)重载算术运算符…

商城项目【尚品汇】08异步编排-01基础篇

文章目录 1.线程的创建方式1.1继承Thread类,重写run方法1.2实现Runnable接口,重写run方法。1.3实现Callable接口,重新call方法1.4以上三种总结1.5使用线程池创建线程1.5.1线程池创建线程的方式1.5.2线程池的七大参数含义1.5.3线程池的工作流程…

html写一个table表

HTML代码&#xff1a; <div class"table_box w-full"><div class"title_top">XX表</div><div class"title_btm">(<input class"input input_1" type"text">xxxx)</div><table class…

Jenkins构建打包部署前端Vue项目至Nginx

一. 安装jenkins 基于DockerJenkins实现自动部署SpringBootMaven项目-CSDN博客 二. 安装NodeJs插件并配置 显示上面两行则表示安装成功, 然后回到首页, 点击’系统管理’->‘全局工具配置’: 配置node.js 三. 创建jenkins项目 1、创建项目 2、配置gitee 3、配置源码 4、…

kafka如何保证消息不丢失

Kafka发送消息是异步发送的&#xff0c;所以我们不知道消息是否发送成功&#xff0c;所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失&#xff0c;那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…

qmt量化交易策略小白学习笔记第16期【qmt编程之获取北向南向资金(沪港通,深港通和港股通)】

qmt编程之获取北向南向资金 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 北向南向资金&#xff08;沪港通&#xff0c;深港通和港股通&#xff09; #北向南向资金交易日历 获取交易日列表…