`
AILIKES
  • 浏览: 186269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ngrok内网穿透工具服务器搭建

 
阅读更多
前言:

        ngrok是一个内网穿透的解决方案,它使得你本地的服务器可以被局域网外的公网访问到。作为一个web 程序猿,使用ngrok可以使系统联调变的方便灵活

ngrok服务端会建立http和https服务,以及供客户端连接的服务,默认端口4443

它的工作流程如下:

        访问端输入域名->DNS->ngrok服务端->请求映射到ngrok客户端->客户端返回响应到ngrok服务端->ngrok服务端返回响应到访问端

准备工作:
  1. 一台公网服务器
  2. 一个域名,顶级或二级均可(域名需要备案)
服务器环境:
         aliyun ECS | 操作系统 CentOS7(amd64)
关于域名:一个是基础域名,可以是顶级或者二级,它用来为ngrok服务器本身提供外部访问。二就是基于基础域名的二级或者三级域名,用来映射到你的本地服务器。可以设置多个,取决于你的需要。例如 abc.comngrok.abc.com / ngrok2.abc.com,每个映射域名对应一个ngrok客户端

假设域名是 abc.com 

如果你需要使用顶级域名作为基础域名,那么请将abc.com泛解析到服务器ip,然后将你需要使用的二级域名通过A记录解析到服务器ip,例如 ngrok.abc.com

如果你需要使用二级域名,那么先将你的二级域名(xxx.abc.com)通过A记录解析到服务器域名。然后将三级域名(比如 test.xxx)通过CNAME的方式解析到 xxx.abc.com,这次xxx.abc.com便成为了客户端与服务端的连接域名,test.xxx.abc.com则是映射域名

下面使用abc.com作为基础域名演示,如果你的基础域名是二级域名,替换即可

一,安装git和go
yum install gcc -y
yum install git -y
yum install mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386 -y
二,下载源码
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok  
mkdir cert 
cd cert
export NGROK_DOMAIN="abc.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

    替换(提示overwrite输入y)

cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
四:生成服务端与客户端

    切换回ngrok目录,以下命令按需生成,生成后的文件在bin目录下

linux服务端
GOOS=linux GOARCH=386 make release-server (32位)
GOOS=linux GOARCH=amd64 make release-server(64位)

#Mac OS客户端
GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client

#windows客户端
GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client

五、用SSH Secure Shell Client工具

将~/ngrok/bin/windows_amd64/里的文件下载到本地Windows下,如D:\ngrok

六、在D:\ngrok中新建ngrok.cfg配置文件

server_addr: "abc.com:8083"
trust_host_root_certs: false
tunnels:
  http:
    subdomain: "www"
    proto:
      http: "80"
      
  https:
    subdomain: "www"
    proto:
      https: "443"
 
  ssh:
    remote_port: 2222
    proto:
      tcp: "22"

  mstsc:
        remote_port: 52222      
        proto:
         tcp: "192.168.0.107:3389"


 

以上 8083 80 443 与 远程开启的端口一致,

七、开启远程服务

注意:一定要根据自己的实际情况在服务器后台安全组规则中开启或删除

sudo ./bin/ngrokd -domain="abc.com"  -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &

-httpAddr=80 此配置用来指定映射域名http访问的端口 默认80

-httpsAddr=443 https的访问端口 默认443

-tunnelAddr=4443 客户端连接的端口 默认4443

以上端口,如若与系统其他服务有冲突,开启服务时请自行配置其他端口

 

八、启动客户端

在Windows中D:\ngrok新建文件 改名 start.bat:

       ngrok -config=ngrok.cfg start http https ssh mstsc

直接双击运行

 

表示成功,

不成功的话看看自己的开启端口是否与config文件中对应

或查看服务器的远程端口是否在安全组中打开

【创建开机启动服务】

关于ngrok在远程开机自启问题

服务器后台开机启动运行ngrok服务端:

1.以下内容新建一个 start.sh 文件 放到 ~/ngrok/start.sh

~/ngrok/bin/ngrokd -domain="abc.com"  -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &

给权限:

chmod 755 ~/ngrok/start.sh

2.新建ngrok启动脚本文件

sudo vi /etc/init.d/ngrok

文件内容:

!/bin/sh
BEGIN INIT INFO
Provides:          ngrok
Required-Start:
Required-Stop:
Default-Start:    2 3 4 5
Default-Stop:      0 1 6
Short-Description: Start or stop the ngrok Proxy.
END INIT INFO
ngrok_path=~/ngrok/
case "$1" in
    start)
            echo "start ngrok service.."
            sh ${ngrok_path}/start.sh
            ;;
  *)
    exit 1
    ;;
esac

3.ngrok脚本文件 给权限

chmod 755 /etc/init.d/ngrok

4.添加启动服务 ngrok

chkconfig –add ngrok

5.测试服务是否能启动成功

service ngrok start

6.查看自启动的服务 是否有 nrgok !!

chkconfig   

执行这个代码如果出现后面的就OK了!! ngrok 0:off 1:off 2:on 3:on 4:on 5:on 6:off

分享到:
评论

相关推荐

    ngrok 源码包,个人搭建ngrok内网穿透工具

    ngrok是一款强大的内网穿透工具,它允许用户将本地服务器暴露到公共互联网上,而无需进行复杂的网络配置。源码包的提供意味着你可以自行编译和部署ngrok,以适应你的特定需求或环境,这对于开发者来说是极具价值的。...

    ngrok-内网穿透服务搭建(在家办公)

    服务器可以买性能低的,然后搭建这个服务,进行内网穿透,把本地的服务,映射出去,通过外网访问,相当于本地的性能跑服务,然后可以通过外网访问。 缺点:本地电脑不稳定,内网穿透连接有可能不稳定。。不能完全当...

    ngrok内网映射域名的工具

    ngrok是一款强大的内网穿透工具,它允许用户将本地的开发环境或内网服务暴露到公网,以便在任何地方访问。这款工具源自国外,但在中国也有广泛应用,因其易用性和高效性而备受开发者喜爱。本文将详细介绍ngrok的工作...

    esp32cam实现wifi内网穿透后的监控

    - FRP(Fast Reverse Proxy):这是一个开源的内网穿透工具,适用于服务器资源有限的情况。在服务器端和ESP32-CAM上部署FRP客户端和服务器程序,配置端口映射。 5. 图像流与监控: 一旦内网穿透配置完成,可以...

    sunny-ngrok for thinkphp 内网穿透库.rar

    搭建代理服务器,由此许多内网穿透,内网映射软件应运而生,根据网络通内网端口映射工具的多年开发经验,和大家分享一下内网穿透的原理和简单实现,网络通,花生壳内网版,ngrok等原理都是大同小异的. 首先传输协议选择,...

    精ngrok服务搭建v2.docx

    这时,一款名为ngrok的工具便应运而生,它能够帮助开发者轻松实现内网穿透。 #### 二、ngrok简介 ngrok是一款开源的隧道服务,它可以将一个本地运行的服务暴露到互联网上。相比于其他同类工具,ngrok提供了更加...

    ngrok启动脚本

    【ngrok启动脚本】是本文的核心话题,它涉及到的是如何在腾讯云的CentOS 7.2操作系统上建立一个自有的内网穿透工具。首先,我们来详细了解一下`ngrok`及其工作原理。 `ngrok`是一款强大的内网穿透工具,它允许你...

    ngrok相关文件.zip

    ngrok是一款强大的内网穿透工具,它允许用户通过一个公共的域名或IP地址来访问内网中的服务。这个“ngrok相关文件.zip”压缩包包含了搭建ngrok所需的几个关键组件,包括ngrok源码、Git安装包以及Go语言安装包。下面...

    微信公众号开发环境搭建.pdf

    本资源详细介绍了微信公众号的类型、注册测试公众号的步骤、接口权限的区别,以及如何使用Ngrok等工具实现本地开发环境的搭建和内网穿透。 适合人群:本资源适合对微信公众号开发感兴趣的初学者、编程爱好者,以及...

    电脑教程内网渗透之内网穿透.rar

    例如,当你需要在家中远程控制一台内网中的服务器,或者想让朋友访问你搭建的私人网站时,就可以用到内网穿透。首先,你需要选择一种适合你需求的穿透方式,如使用第三方服务。注册并配置相应的服务,比如在FRP中,...

    百度地图开发java源码-lanproxy-nat::globe_showing_Europe-Africa:手把手教你,搭建内网穿透服务,基于lanproxy穿透服务,为你深度定制了开箱即用的服务

    这款开源工具,正好实验室购置了一台公网服务器,正好可以实现内网穿透,决定入坑折腾一番。对于有后台开发基础的同学还是挺简单的,不过好记性不如烂笔头,来吧,这里手把手深入探索一番。 一、概述 1.1 什么是内网...

    详解基于docker搭建lanproxy内网穿透服务

    文档更新说明 2018年04月06日 v1.0 内网穿透相信是后端开发者经常遇到的需求,可是怎么实现呢?...内网穿透其实就是用服务器做一个中转,将请求转发,本文记录了在 ubuntu 16.04 上,基于 docker 搭建的内网穿透服务

    利用公网IP搭建端口映射.zip

    2. **第三方内网穿透工具**:如 ngrok、花生壳、Frp 等,它们提供了一种云服务,可以在没有固定公网IP或者路由器无法配置端口映射的情况下,通过它们的服务器作为中转,实现内网服务对外的访问。这些工具通常提供...

    ngrok_clent_server-for-windows.zip

    快速把本机开发的web让外网可以访问,可以用于微信,支付宝支付等开发,搭建环境为服务器和客户端都为windows

    支付宝支付有关软件都在这里.zip

    首先,我们来了解"NATAPP1分钟快速新手图文教程 - NATAPP-内网穿透 基于ngrok的国内高速内网映射工具.pdf"。NATAPP是一种内网穿透服务,它允许在内网环境中的服务器或应用被外部网络访问。NAT(网络地址转换)通常会...

    路由器端口内网映射器

    7. **其他解决方案**:除了使用【路由器端口内网映射器】,还有一些第三方服务,如No-IP、Ngrok等,提供动态DNS解析和端口转发服务,可以帮助用户更方便地实现内网服务的外网访问。 8. **文件“lyysq”**:此文件名...

    Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网

    这一系列操作涉及到前端开发框架Vue.js、Web服务器Tomcat以及内网穿透工具ngrok的使用,每个步骤都有一定的技术要求和操作细节。 首先,准备工作包括安装Vue.js和Vue CLI。Vue.js是一个构建用户界面的渐进式...

    个人电脑如何通过外网访问自己的网站.doc

    4. **注册并使用ngrok服务**: ngrok是一种内网穿透工具,能够将你的本地服务器暴露到公网,让你的网站可以被外网访问。在ngrok官方网站(http://ngrok.cc/)注册账号,并根据需求选择免费或付费版本。下载客户端并...

    端口映射软件

    总的来说,端口映射软件是网络通信中的一个重要工具,尤其对于那些需要在内网环境中提供对外服务的用户来说,它极大地扩展了网络可达性,使私人服务器的搭建和管理变得更加便捷。在实际应用中,正确理解和运用端口...

Global site tag (gtag.js) - Google Analytics