`
AILIKES
  • 浏览: 178000 次
  • 性别: 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.zip 内网穿透工具

    ngrok内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具、内网穿透工具...

    Ngrok内网穿透工具安装包

    1、最简单的使用ngrok的方式 2、内网穿透后,使外部能够访问你的本地服务接口 3、微信开发、小程序开发必备

    ngrok内网穿透工具

    免费的内网穿透工具,适合于本地开发环境下小程序、微信公众号开发不方便调试的情况,可以将本地ip地址映射成外网域名

    ngrok内网穿透.zip

    ngrok内网穿透工具及操作报告,支持系统为Ubuntu64位。

    Ngrok内网穿透.rar

    该资源为博客的关联配置:https://blog.csdn.net/qq_43312049/article/details/106059589

    ngrok内网穿透压缩包

    ngrok内网穿透压缩包

    Sunny-Ngrok内网穿透工具下载

    当我们在公司或这学校开发项目时,有些功能(例如:微信公众号的开发)则需要将本项目暴露在外网才可以,但是又属于开发测试阶段,搭到外网服务器又太麻烦。这个时候就需要将本地运行的项目暴露到外网直接测试。

    ngrok免费内网穿透,重点是免费

    ngrok免费内网穿透,重点是免费,

    ngrok内网穿透(windows)

    ngrok内网穿透windows免费版

    Sunny Ngrok内网穿透服务

    Sunny ngrok内网穿透服务,支持windows xp及以上系统,需要的可以自行下载

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

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

    内网穿透工具Ngrok

    钉钉内网穿透工具,支持http,https协议,同时支持更丰富的系统和语言:linux、win、mac、openwrt、 python、php等

    基于内网穿透工具ZSGateway搭建宅服1

    基于内网穿透工具 ZSGateway 搭建宅服(自动)1, 将 ZSGATEWAYMINISERV.EXE 复制到你的公网服务器中,并且打开运行它2, 下图有

    ngrok免费内网穿透工具及教程

    内网穿透免费工具,自己本机变成服务器可以外网访问,内涵操作教程及软件,若您有疑问与我联系ZhuiMei_chuanMei

    Ngrok内网穿透.zip

    第二步:去买个隧道,选择你想要的版本,这里使用的是免费的。 第三步:配置隧道,注意端口号是你的web项目发布的端口。 第四步:下载客户端,之后输入你的隧道ID,隧道ID在你的隧道管理页面 ...

    Ngrok-内网穿透-远程工具

    Ngrok-内网穿透-远程工具

    ngrok.rar 内网穿透工具

    ngrok.rar 内网穿透工具,花生壳之类的都是这个的重封装,ngrok.exe为官网版本,ngrok_2.exe为另一款待测试的版本

    N2N_V2内网穿透工具包(Windows版).zip

    N2N内网穿透工具包,版本是V2,Windows版本下使用,可以用来进行内网穿透,组件2层局域网联机打游戏

    ngrok免费内网穿透.zip

    ngrok免费内网穿透 1.打开cmd到ngrok-stable-windows-amd64目录下 2.执行ngrok authtoken 7U4tPgujohKNgxtRtkuwg_6F7twiVnN5rJjHiX3H4KG 3.执行ngrok http 8080

Global site tag (gtag.js) - Google Analytics