[Linux]内网穿透nps

2024-06-10 06:12
文章标签 linux 穿透 nps

本文主要是介绍[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"

这篇关于[Linux]内网穿透nps的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047399

相关文章

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.