清茶书香

一杯清茶,一本书籍,一个下午。


  • 首页

  • 归档

  • 分类

  • 关于

  • 搜索
Redis JPA Solr SpringData SpringMVC localRepository local Mapper 事务 Mybatis JDBC AOP DI IOC 常用函数 触发器 存储过程 Promise Gateway SpringCloud vue-cli axios es6 webpack npm vue 个性化 zsh 终端 caffeine jvm缓存 guava cache validation Mapping MapStruct comment 小程序 建站 WeHalo config logback plugins database idea maven spring https http nginx password RabbitMQ 秒杀系统 Windows MySQL 数据备份 halo SpringBoot shell Linux ip Optional Stream Lambda k8s Docker 列编辑 vim MacOS 图片合成 Java 远程联调 nps 内网穿透

内网穿透-nps实现

发表于 2020-04-24 | 分类于 工具 | 0 | 阅读次数 505

今天我们来搞一搞这个内网穿透,内网穿透其实就是将局域网内的IP的某个端口映射到公网的某个IP的某个端口,以此来实现通过公网IP访问到自己的局域网内的服务。如果你想要将你的旧电脑当作服务器来使用,恰巧你还有一个公网的IP,那么你就可以使用本文的方式来做一个内网穿透来打通你的本地服务与公网直接的关节。

准备工作

实现内网穿透的技术有很多种,比如frp,nps 等等。今天我用到的是利用nps技术去实现内网的穿透。

首先我们需要准备内网穿透的必要东西:

  • 一个公网的IP(可以考虑购买一台云服务器)
  • nps服务端
  • npc客户端

nps项目地址:https://github.com/ehang-io/nps

注:不要直接下载release的包,可能存在病毒,建议自己编译源码。具体可以查看项目里的一些issue。

安装服务端

首先将下载的服务端压缩包上传至服务器上,解压到一个地方。然后修改它的conf/nps.conf文件,我们只需要修改下面这些信息即可。

appname = nps
#Boot mode(dev|pro)
runmode = dev
#
###bridge
## 底层通信协议,默认tcp,可选用kcp
bridge_type=tcp
## 底层通信端口,默认8024,如已被占用请指定其他端口
bridge_port=8024
bridge_ip=0.0.0.0
#
## 当客户端以配置文件模式启动时会用到的验证密钥,可自行设置,本教程不会使用到
public_vkey=<你的通信密钥>

##web
web_host=<你的服务器公网IP>
web_username=<登录之后管理后台的用户名>
web_password=<登录管理后台的密码>
web_port = <访问管理后台的端口>
web_ip=0.0.0.0

修改完成后可以使用./nps start启动服务,然后使用web_host:web_port访问管理后台网站,如果访问不成功可以去云服务平台查看安全组是否开放了这个端口的访问,如果没有请加一条放行规则,具体添加方式请按自己选择的云平台的方式添加。

这种方式启动服务,使用ctrl + c或者ssh窗口关闭就会停止,我们可以将这个服务注册到系统的守护进程中,从而不需要经常手动开启服务。

sudo ./nps install
sudo nps start
# nps 服务的参数有如下
nps install | start | stop | restart | reload
# 其中reload参数目前支持的重载的属性不多,还是建议重启服务

注:安装后服务的配置文件在/etc/nps/conf/下(windows的在C:\Program Files\nps),修改原有的配置文件将不会生效

访问成功后就可以看到这样的一个页面,使用配置文件里的用户名、密码登录管理后台。

nps管理后台

  1. 在客户端分类中添加一台客户端,点击新增,然后可以留空的字段都留空,保存后点击+号会有一行客户端命令,将这行命令复制下来,之后启动客户端就使用该命令。

客户端管理

  1. 在TCP隧道分类新增一个连接隧道,其中客户端ID为刚才创建的客户端的ID,服务端端口为访问内网服务时服务端使用的端口号(只要不和自己服务端其他服务的端口重复即可),目标IP:port则是内网服务的IP:port,比如本地tomcat服务的8080端口,则填写127.0.0.1:8080,填写完成后保存。

安装客户端

将下载的客户端压缩包解压,执行之前管理后台中新增客户端后提供命令即可连接上服务端(ctrl + c结束进程)。

./npc.exe -server=ip:port -vkey=web界面中显示的密钥

然后就可以通过公网IP:port(服务端端口号)直接访问到自己内网提供的服务了。

也可以将客户端注册到程序的守护进程中(开机启动),之后就不需要每次手动连接服务了。

对于Linux/Mac:

# 注册
sudo ./npc install -server=ip:port -vkey=web界面中显示的密钥
# 启动
sudo npc start
# 停止
sudo npc stop
# 卸载
./npc uninstall

对于Windows(管理员运行cmd或者powershell):

# 注册
npc.exe install -server=ip:port -vkey=web界面中显示的密钥
# 启动
npc.exe start
# 停止
npc.exe stop
# 卸载
npc.exe uninstall

如果需要更换连接的属性,那么需要先卸载,再重新注册。

关于内网穿透就说到这里了,这些只是关于nps最简单的运用,至于其他的如果有需求的话可以去看他的官方文档来实现自己的需求。

参考文档:

官方文档

内网穿透工具nps使用教程(一)

Bennett wechat
欢迎收藏我的微信小程序,方便查看更新的文章。
  • 本文作者: Bennett
  • 本文链接: https://hibennett.cn/archives/内网穿透-nps实现
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 内网穿透 # nps # 远程联调
Linux定时备份MySQL数据库脚本
Java合并图片
  • 文章目录
  • 站点概览
Bennett

Bennett

60 日志
28 分类
74 标签
RSS
Github E-mail Gitee QQ
Creative Commons
Links
  • MacWk
  • 知了
0%
© 2020 — 2023 hibennett.cn版权所有
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4

浙公网安备 33010802011246号

    |    浙ICP备2020040857号-1