前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【docker系列】搭建Ngrok实现内网穿透

【docker系列】搭建Ngrok实现内网穿透

作者头像
JAVA葵花宝典
发布2020-01-16 16:19:42
3.7K0
发布2020-01-16 16:19:42
举报
文章被收录于专栏:JAVA葵花宝典JAVA葵花宝典

先来一张效果图镇楼

内网穿透是什么?

内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。

什么场景下会使用到内网穿透?

上面说的比较官方,我们还是来聊聊实际应用场景,比如你接了一个外单系统,做完了以后老板想验货,这时候大部分无非就2种做法,开远程让他看/自己部署到公网的服务器让别人看,两种都很麻烦,费时费力,那么我们做一个内网穿透,直接让别人通过外网域名访问你的本地机器,岂不是很简单。

还有作为开发人员来讲,用内网穿透来做本地调试还是挺方便的,现在第三方对接都是需要公网域名的,比如微信的一些接口,不用内网穿透将会花费很多的时间和精力在调试上。

准备工作

  • 一台公网服务器
  • 自己的域名,并解析出来一个ngrok服务器的子域名,小编这里用的是ngrok.javakhbd.com

PS:本文基于腾讯云

拉取镜像

代码语言:javascript
复制
docker pull hteen/ngrok

执行编译命令,编译服务端和客户端

代码语言:javascript
复制
docker run --rm -it -e DOMAIN="ngrok.javakhbd.com" -v /data/ngrok:/myfiles hteen/ngrok sh /build.sh

执行成功截图

此刻在/data/ngrok目录下面,你会看到以下文件:

我们生成的客户端和服务器在/data/ngrok/bin目录下

代码语言:javascript
复制
bin/ngrokd                  服务端
bin/ngrok                   linux客户端
bin/darwin_amd64/ngrok      osx客户端
bin/windows_amd64/ngrok.exe windows客户端

启动服务器端

由于之前的命令是编译命令并不是启动容器,所以我们开始根据刚才下载的镜像来启动容器

代码语言:javascript
复制
docker run -idt --name ngrok-server -v /data/ngrok:/myfiles -p 80:80 -p 443:443 -p 4443:4443 -e DOMAIN='ngrok.javakhbd.com' hteen/ngrok sh /server.sh

如果是这些宿主端口被nginx等占用可以换以下宿主端口,然后自己做映射即可。

客户端连接

这里以window客户端为例。

先将服务器上编译好的客户端下载下来。

创建一个文件ngrok.cfg,作为配置文件,里面配置如下:

代码语言:javascript
复制
server_addr: "你的ngrok域名:4443端口"
trust_host_root_certs: false

配置文件弄好以后虽然也能通过命令启动,但是总归太麻烦了,我们把命令放到start.bat可执行文件,这样每次要用到内网穿透的时候双击就可以了。

代码语言:javascript
复制
ngrok.exe -config  ngrok.cfg -subdomain ceshi localhost:8081

见证效果

话不多说,直接上动图吧!

- End -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA葵花宝典 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先来一张效果图镇楼
  • 内网穿透是什么?
  • 什么场景下会使用到内网穿透?
  • 准备工作
  • 拉取镜像
    • 执行编译命令,编译服务端和客户端
    • 启动服务器端
    • 客户端连接
    • 见证效果
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档