美文网首页
ngrok(内网穿透)配置全过程

ngrok(内网穿透)配置全过程

作者: whisshe | 来源:发表于2018-03-20 11:19 被阅读797次

2018-03-19

ngrok简介

ngrok是一个开源的内网穿透服务(1.7之前的版本),通过反向代理实现端口间的映射,使得内网服务(内网中所有的机器)能够通过外网IP/域名进行访问(将请求转发至指定机器,内网中安装一个客户端即可)。

必备条件

  1. 一台有外网IP的可提供服务的服务器(用来运行ngrok服务端)

  2. GO语言环境

  3. 开放防火墙端口

ngrok服务端

ngrok github地址

GitHub上面提供的是服务端的源码,客户端是在指定配置之后编译生成的。

  1. 安装GO语言环境

  2. 安装ngrok,编译生成客户端


    git clone  https://github.com/inconshreveable/ngrok.git

    cd ngrok

配置证书信息,以生成专属的客户端(可写入shell脚本执行)


  NGROK_DOMAIN="abc.com" #换成你的域名(绑定外网IP的域名)

  openssl genrsa -out base.key 2048

  openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem

  openssl genrsa -out server.key 2048

  openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr

  openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

  cp base.pem assets/client/tls/ngrokroot.crt

编译生成客户端和服务端(有针对不同系统生成的客户端,自行搜索)


  make release-server release-client

编译生成的执行文件放在ngrok/bin下,ngrok为客户端,ngrokd为服务端。

  1. ngrok-server参数说明

  -httpAddr  # http端口(通过外网IP或域名加上这个端口进行http访问内网)

  -httpsAddr #同http,只是这个是https

  -tunnelAddr #隧道端口,内网和外网建立的隧道端口,默认为4443(客户端配置连接的端口)

ngrokd启动命令


nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="your domain" -httpAddr=":8081"  &

#nohup可将进程置入后台,且ssh连接断开不受影响

netstat -tpln|grep ngrokd  #查看进程端口状态

ngrok客户端

  1. 将客户端从外网服务器上面下载至内网机器

  2. 在内网机器上写一个配置文件ngrok.cfg

该配置文件可一次性转发多个端口,建议按这种格式,配置文件为yaml语法,所有缩进需要使用空格


server_addr: ngrok.abc.com:4443

trust_host_root_certs: false

tunnels:

  ssh:

  remote_port: 1122

  proto:

    tcp: 22

  shadowsock:

  emote_port: 1088

  proto:

    tcp: 1188

  ftp:

  remote_port: 24

  proto:

    tcp: 24

  http:

  subdomain: gitlab

  proto:

    http: 80

    https: 172.3.2.1:443

  ```

  #### 启动特定的隧道

  ```

  ./ngrok -config ngrok.cfg start ssh ftp

  ```

  #### 启用配置文件中所有的隧道

  ```

  ./ngrok -config ngrok.cfg start-all

  ```

参考文章

https://www.jianshu.com/p/69b4f10ad954
https://imququ.com/post/self-hosted-ngrokd.html
https://morongs.github.io/2016/12/28/dajian-ngrok/

相关文章

  • 关于slack服务器发送消息的demo

    base 使用ngrok内网穿透 slack api 配置slack app 配置

  • ngrok(内网穿透)配置全过程

    2018-03-19 ngrok简介 ngrok是一个开源的内网穿透服务(1.7之前的版本),通过反向代理实现端口...

  • sunny-ngrok 内网穿透

    sunny-ngrok 内网穿透是基于 ngrok 的一个内网穿透服务,提供免费的用于开发的内网穿透隧道。 接下来...

  • ngrok内网穿透配置

    ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可...

  • 使用Ngrok实现内网穿透服务

    # 使用Ngrok实现内网穿透服务 tags: 网络 Linux ngrok ngrok是什么? ngrok是一个...

  • Sunny-Ngrok实现自定义域名内网穿透

    内网穿透 + Sunny-Ngrok + 自定义域名 1、内网穿透 1.1 内网IP:内网IP,过多官方的解释这里...

  • Ngrok服务端搭建

    本文介绍Ngrok服务搭建。Ngrok和花生壳类似都是内网穿透工具,了解更多可以查看另外一篇专门介绍内网穿透工具的...

  • 内网穿透 -ngrok

    内网穿透 -ngrok 1.下载 下载ngrok,我下载的是win64.zip下载地址:https://ngrok...

  • Ngrok内网穿透

    为什么要用 至于为什么要用内网穿透技术,网上一大堆,也有很多收费的网站进行内网穿透,比如花生壳等等。 这里我们选择...

  • ngrok 内网穿透

    第一个先下载ngrok 客户端 下载地址: https://ngrok.com/download点击进去下面 ...

网友评论

      本文标题:ngrok(内网穿透)配置全过程

      本文链接:https://www.haomeiwen.com/subject/pymvqftx.html