社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

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

JAVA葵花宝典 • 5 年前 • 763 次点击  

先来一张效果图镇楼

内网穿透是什么?

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

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

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

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

准备工作

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

PS:本文基于腾讯云

拉取镜像

docker pull hteen/ngrok

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

docker run --rm -it -e DOMAIN="ngrok.javakhbd.com" -v /data/ngrok:/myfiles hteen/ngrok sh /build.sh

执行成功截图

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

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

bin/ngrokd                  服务端bin/ngrok                   linux客户端bin/darwin_amd64/ngrok      osx客户端bin/windows_amd64/ngrok.exe windows客户端

启动服务器端

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

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,作为配置文件,里面配置如下:

server_addr: "你的ngrok域名:4443端口"trust_host_root_certs: false

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

ngrok.exe -config  ngrok.cfg -subdomain ceshi localhost:8081

见证效果

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

- End -

【5分钟教程】docker 搭建nginx并配置https


基于win10+Docker+idea的SpringBoot项目容器化部署


使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目


【实战原创】SpringBoot应用docker化并发布到远程服务器

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52846
 
763 次点击