文章目录
- 基础文件下载
- 项目地址
- 下载地址
- 客户端安装
- 解压文件
- 客户端启动
- 客户端注册到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)
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"