1. 准备
    一台云服务器(本文ECS),一个域名(二级域名也可以),并且域名正确解析到云服务器

  2. 安装环境
    安装gcc和git(下载ngrok源码)

    yum install gcc -y
    yum install git -y

  3. 安装go语言环境
    去官网https://golang.org/dl/下载最新安装包
    网很慢的下载地址:https://pan.baidu.com/s/1c2i2oaG(官网1.9.2版本)
    解压缩

    tar -c /usr/local/ -zxvf go1.9.2.linux-amd64.tar.gz

    添加到环境变量

    vi /etc/profile
    export GOROOT=/usr/local/go
    export PATH=PATH:PATH:GOROOT/bin
    source /etc/profile

    查看是否安装成功(查看版本号)

    go version
    go version go1.9.2 linux/amd64

  4. 搭建Ngrok服务
    下载ngrok源码

    cd /usr/local/ngrok
    git clone https://github.com/tutumcloud/ngrok.git ngrok

    生成证书

    cd ngrok
    NGROK_DOMAIN=”你的域名”

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

将新生成的证书,替换掉assets/client/tls下的证书

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

编译生成ngrokd和ngrok

make release-server release-client

正常执行后,ngrok/bin 目录下应该有 ngrok、ngrokd 两个可执行文件。

启动服务端

sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":7009" -httpsAddr=":7008"

httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定),如果你配置了 iptables 规则,需要放行这三个端口上的 TCP 协议。
现在,通过 https://你的域名:7009和 https://你的域名:7008就可以访问到 ngrok 提供的转发服务

出现下面提示则说明成功

[22:07:18 CST 2017/12/07] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[22:07:18 CST 2017/12/07] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:7009
[22:07:18 CST 2017/12/07] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:7008
[22:07:18 CST 2017/12/07] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443
[22:07:18 CST 2017/12/07] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds

5. 编译生成ngrok(windows客户端)

GOOS=windows GOARCH=amd64 make release-client

成功会在bin目录下看到windows_amd64文件夹,复制到windows电脑上即可启动

get /usr/local/ngrok/ngrok/bin/windows_amd64/ngrok.exe

6. windows端运行
创建一个文件,命名为ngrok.cfg,写入一下内容

server_addr: "你的域名:4443"
trust_host_root_certs: false

在创建一个启动bat文件,命名为start.bat

ngrok -config=ngrok.cfg -subdomain 映射本地的域名 本地的端口
如ngrok -config=ngrok.cfg -subdomain sb 8081

启动start.bat文件

外网域名访问
http://映射本地的域名:7009
映射到本地的地址是
127.0.0.1:本地的端口

CentOS 7 搭建ngrok服务器(外网映射内网)相关推荐

  1. 搭建SpringBoot服务器,在公司内网中使用

    搭建SpringBoot服务器,在公司内网中使用. 学习了:https://blog.csdn.net/z3881006/article/details/78902231 就是一个程序,托管于gith ...

  2. 搭建本地服务器,并免费内网穿透实现外网访问

    本篇教程主要将如何快速地搭建本地服务器,以及使用免费的内网穿透工具,实现外网访问内网服务器,将本地网站发布到外网可访问,方便进行微信公众号.小程序开发本地调试等. 本篇教程分两部分来讲: 搭建本地服务 ...

  3. 教程 | 用安卓手机搭建 web 服务器(三)—— 内网穿透

    用手机完成服务器搭建后一般会放在寝室或者家里,这时使用的是内网,没有公网的固定 IP,没法进行域名解析,这时候就需要内网穿透了. 内网穿透的解决方案有花生壳.frp.魔法隧道.ngrok 等,我选择的 ...

  4. 安卓手机使用Termux搭建web服务器(含frp内网穿透、wake on lan远程唤醒)

    前言 想做一台可以外网访问局域网的服务器,没有群晖或者软路由,正好有一台闲置的nova4,查阅了一些资料后就在手机上搭了一个服务器,有闲心的可以试一试... 目录 ​​​​​ 一.环境准备 二.使用步 ...

  5. 搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问

    一:前言 场景问题: 如果本地的项目在没有服务器的情况下,需要让他人访问: 在自己的电脑上搭建一个web服务器,实现本地的访问和外部的访问.我们就要做内网穿透了,内网穿透就是别人通过外网能够访问到我们 ...

  6. SVN服务器搭建以及外网访问内网SVN

    一.SVN服务器的搭建 1.所需软件 TortoiseSVN,下载地址http://tortoisesvn.net/downloads.html TortoiseSVN中文语言包,下载地址http:/ ...

  7. ngrok linux开机自启动,CentOS 搭建ngrok服务器

    原标题:CentOS 搭建ngrok服务器 1一.前提条件 1. 准备好一台主机,带公网IP 2. 准备一个一级域名,做好泛解析(二级域名的没有配置成功,汗...) 切记 一定要做好域名泛解析 二.安 ...

  8. Windows搭建ngrok服务器、Linux搭建ngrok服务器、支持用户管理

    微信公众号.支付宝支付等开发要求有公网(外网)服务器.每次调试时,上传代码到服务器很不方便.ngrok很好的解决了这一问题.网上的文章大多是讲怎么在Linux下搭建ngrok服务器.其实依靠云计算的强 ...

  9. Ngrok反向代理实现外网访问内网

    该篇博客分享ngrok,这里使用国内作者的ngrok,国外有ngrok,但是访问国内访问比较慢 ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngro ...

最新文章

  1. 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、通过topclass参数自定义三线表表格的显示形式(显示为类似斑马线、并将所有列居中,包括包含行标签的第一列)
  2. [转]深入理解CSS中的层叠上下文和层叠顺序
  3. leetcode - 46. 全排列(对vector容器的元素进行搜索,判断是否存在vector中)
  4. 实现qq邮箱换肤(第一季 )
  5. Win-MASM64汇编语言-$/取当前行代码的地址
  6. Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办?...
  7. 使TextView在Android上可滚动
  8. [Step By Step]SAP HANA PAL多元线性回归预测分析Linear Regression实例FORECASTWITHLR(预测)...
  9. 14.企业应用架构模式 --- Web表现模式
  10. gitee怎么看用户名_怎么优雅的写博客 Typora + picGo
  11. java垃圾收集器、Serial收集器、ParNew收集器、Parallel Scavenge收集器、Serial Old 收集器、CMS收集器、G1收集器、如何查看GC日志
  12. 记录-使用TM1640 数码管驱动芯片
  13. Unity 粒子特效 之 LogoEffect ParticleSystem 文字图片logo粒子特效
  14. QQ、UC手机浏览器访问电脑版网页
  15. 马可夫链和隐马可夫链_马可夫随机场和图像处理
  16. 前端基础知识总结---CSS篇
  17. BPM是什么意思?BPM的优势及好处有哪些?
  18. Google Earth Engine(GEE)——将shp文件导出到Google硬盘中
  19. Java初级试题(编程、简答、选择)
  20. 查看、清空Linux日志【系统日志、软件运行日志】

热门文章

  1. 程序员的终极思维方式:系统论
  2. 构造方法、String类、集合
  3. 优质的器材设备3d模型素材推荐,不容错过
  4. 正态分布与6-Sigma
  5. 单实例oracle ha,单实例和RAC打造的OracleStream
  6. Redis Incr和ncrby
  7. B2C开源网店系统Yuncart
  8. xp 两个计算机互访,XP和Windows7文件不能互访解决办法
  9. Direct3D 11 总结 —— 3 初始化 direct3D,并改变窗口颜色
  10. CSS中清除浮动的代码