ROLL-BLOG

  • 博客首页
  • 个人主页
  • 留言板
  • 在线工具
  • 关于我
ROLL
纸上得来终觉浅,绝知此事要躬行
  1. 首页
  2. 工具搭建
  3. 正文

使用NPS搭建内网穿透服务,限时开放

12月 11, 2021 1797点热度 1人点赞 5条评论

前言

先说下背景,大家通常使用内网穿透,一般都是用在那种开发公众号的时候,联调的时候需要在公众号配置公网可以访问的请求地址,所以需要内网穿透到本机的某个端口,方便联调。但是我这次使用内网穿透,是为了做一个骚操作。

我们呢每天完成开发任务之后,提交代码是需要提Merge Request的,但是使用GItlab的同学都知道,Gitlab上要发起一个Merge Request是很麻烦的一件事情,起码要点击5次跳转三个页面才能完成,像我这么懒的人,怎么会允许这种行为呢?于是开发了一个push自动发起Merge Request的东西。

核心原理就是在你commit的时候,在message里面写入一段指令,例如:修复了xxxbug,[[mq -u mxn -b xxx]],两个中括号内的内容就是指令,mq是指令名称,意在发起merge request,-u指的是你发起mq的成员对象,-b值得是你当前分支的代码将要mq到哪个分支。一旦commit之后再push代码,就会执行指令,自动发起mq...

其中的一些实现逻辑就不讲了,先说说遇到的问题。要知道,Gitlab是搭建在公司内网中的,所以云服务器上是不能直接访问Gitlab自带的api的,所以我需要一条桥梁,就是阿里云服务器到公司内网的桥梁,正好我们公司有一台打包机,是7*24小时待机的,所以我打算在云服务器上搭建内网穿透服务,然后穿透到公司内网上的打包机上,在打包机上启动一个转发请求的springboot服务,这个服务的作用就是请求指定的url,然后将url请求到的数据原封不动的返回给调用方,这样通过内网穿透,就能实现在云服务器上访问公司内网的资源了。

看起来好像挺绕的~~

如何搭建

其实,可以选择的内网穿透的工具挺多的,比如Frp,Ngrok,Nps等等,我是怎么选的呢,我是看后台管理系统哪个好看就用哪个,所以我选了Nps。

首先,贴出Nps Github地址:https://github.com/ehang-io/nps

如果你只是想免费用一下内网穿透,你可以直接跳到第3步。

什么是Nps?

NPS 是一款轻量级、功能强大的内网穿透代理服务器。支持 tcp、udp 流量转发,支持内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 web 图形化管理,集成多用户模式。管理系统比 FRP 方便很多,更容易上手。

1、搭建服务端工具

配置要求:

1、需要一台有公网ip的服务器

2、开放端口,比如我这里的7500,8024,5000~5099(用来给朋友开放入口)

服务端是Centos的系统,选择下载:linux_amd64_server.tar.gz,下载地址是:https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz, 我盲猜有很多人下载不下来,所以我放到我自己的文件服务器了:http://www.cretinzp.com:8029/file/2021/12/10/linux_amd64_server.tar.gz。

  • 下载完成之后,解压,进入文件夹,执行安装命令:

    sudo ./nps install
  • 启动nps服务

    sudo nps start
  • 停止和重启

    sudo nps stop
    sudo nps restart
  • 查看启动日志

    一般来讲,第一次启动都会报错,我盲猜你的服务器应该使用了nginx,所以80端口被占用,正好nps也要使用80端口,所以就会失败,正好用下面的命令查看错误日志。

    安装后windows配置文件位于 C:\Program Files\nps,linux和darwin位于/etc/nps

    vi /var/log/nps.log

至此,服务端就安装完了,贼快是吧,然后可以去看下管理后台长啥样。

  • 访问服务端ip:web服务端口(默认为8080)
  • 使用用户名和密码登陆进入管理后台(默认admin/123,正式使用一定要更改)

2、在管理端创建客户端

  • 进入管理后台之后,选择左边客户端,点击右边新增按钮

  • 填写客户端备注,点击新增

  • 回到客户端列表,选择一台客户端,添加隧道,然后点击新增隧道按钮

  • 选择tcp隧道,服务端端口随便填写一个不冲突的端口数字,目标地址填写你需要映射到的内网ip+端口,后续将会访问服务端的这个端口号映射到你的内网目标地址。最后点击新增。比如这里我定义服务端端口为5002,目标ip为:127.0.0.1:8011

这样,一个客户端就算创建完成了。

3、搭建客户端工具

  • 3.1 下载客户端工具

    • 3.1.1 如果你是Mac系统

    请下载nps客户端程序,选择darwin_amd64_client.tar.gz,下载地址为https://github.com/ehang-io/nps/releases/download/v0.26.10/darwin_amd64_client.tar.gz, 我盲猜有很多人下载不下来,所以我放到我自己的文件服务器了:http://www.cretinzp.com:8029/file/2021/12/11/darwin_amd64_client.tar.gz

    下载后解压,可以获得 nps的运行程序。

    • 3.1.2 如果你是Windows系统

    请下载nps客户端程序,选择windows_amd64_client.tar.gz,下载地址为https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_amd64_client.tar.gz, 我盲猜有很多人下载不下来,所以我放到我自己的文件服务器了:http://www.cretinzp.com:8029/file/2021/12/11/windows_amd64_client.tar.gz

    下载后解压,可以获得 nps的运行程序。

  • 3.2 复制运行指令

    进入客户端列表,点击你需要使用的客户端左边的+号,在展开的信息中复制客户端命令

  • 3.3 运行客户端

    • 3.3.1 如果你是Mac系统

    进入到npc所在目录,执行 ./npc -server=xxx:xxx -vkey=xxx -type=tcp, ./npc后面的命令都是从上一步骤中复制过来的。

    • 3.3.2 如果你是Windows系统

    打开cmd,进入到npc所在目录,执行 npc.exe -server=xxx:xxx -vkey=xxx -type=tcp, ./npc后面的命令都是从上一步骤中复制过来的。

    如果使用powershell运行,请将ip括起来!

  • 3.4 验证效果

    我本地有个8011的端口正在提供服务,并且提供了一个test接口,接口地址为 /test/rename_log,于是我请求 serveradd:5002/test/rename_log 进行验证。如果你发现没有反应,有可能是服务器端口未被开放,比如我这里的5002端口需要被开放才可以访问到。具体请搜索

如何申请免费隧道?

前段时间双十一,购买了一台3年10M的服务器,于是在上面搭建了nps,现在我自己也在用,所以也开放给关注我的朋友们使用,如果你正好需要一个内网穿透的服务,但是你没有服务器资源可以拿来做这个,那么你可以在我这里申请一条免费的线路,以解燃眉之急。

关注《Cretin的开发之路》,回复#12,即可申请免费线路。

关于我

如果你觉得我搞的一些小东西还挺好玩的,别忘了动动你的小手帮我分享一下,在此谢谢你了

如果你也喜欢折腾一些东西,你可以通过留言,客服找到我,正好,我也喜欢折腾一些东西,我们可以做朋友。

欢迎访问我的个人主页:https://www.mxnzp.com
新搭建的博客主站:http://blog.mxnzp.com
Github地址:https://github.com/MZCretin

标签: 小工具 指南
最后更新:12月 13, 2021

穆仙念

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

  • 虎虎

    大佬,问下博客使用什么搭建的?

    12月 24, 2021
    回复
    • 穆仙念

      @虎虎 wordPress

      2月 21, 2022
      回复
  • Isacraw

    I confirm. All above told the truth.
    dfgdlfg2131.32
    https://howytooutoknowcgfdf.org/map.php

    2月 26, 2022
    回复
  • 学海无涯

    我来学习了,可惜小白看不太懂, :cry:

    10月 22, 2022
    回复
    • 穆仙念

      @学海无涯 加油就好

      12月 7, 2022
      回复
  • 取消回复
    文章目录
    • 前言
    • 如何搭建
      • 1、搭建服务端工具
      • 2、在管理端创建客户端
      • 3、搭建客户端工具
    • 如何申请免费隧道?
    • 关于我
    最新 热点 随机
    最新 热点 随机
    太懒了,所以用小爱开楼下的门禁 做个自己的APP?段子乐开放API今日发布 使用NPS搭建内网穿透服务,限时开放 Jetpack系列之App Startup从入门到出家 一、【Mac新机安装】IntelliJ Idea 2020 破解安装.md 【学个新技术】六、SpringCloud 服务注册中心组件-eureka client
    【需求解决系列之四】Android App 在线 自动更新(适配到9.0) 【学个新技术】三、Docker容器相关操作 【学个新技术】九、Docker 使用Dockerfile构建springboot应用 Jetpack系列之App Startup从入门到出家 【需求解决系列之五】一行代码实现Android 6.0以上动态权限的申请 【学个新技术】十一、Docker Docker-Compose
    最近评论
    654 发布于 2 个月前(12月06日) 麻烦问下,2023年的万年历什么时候可以出来
    0605 发布于 2 个月前(11月29日) 2023年的日历信息还未维护吗?
    w 发布于 2 个月前(11月21日) 你好,报请求频繁咋解决?
    minky 发布于 2 个月前(11月21日) 申请的appid 按照公众号复制了,还是提示不合法,用不了
    Guilt 发布于 2 个月前(11月17日) 获取到驾考列表,但获取不了答案 控制台说是被策略阻止了
    书签
    • CSDN
    • Github
    • 傻瓜记账APP
    • 在线工具
    • 掘金
    • 段子乐APP
    • 简书
    • 通用免费API
    标签聚合
    SpringCloud 指南 就是喜欢玩儿 后端开发 前端开发 解决需求 学个新技术 Docker

    Copyright © 2017-2021 All Rights Reserved.

    THEME KRATOS MADE BY VTROIS

    鄂ICP备17026449号-2