一、准备工作
要想搭建自己的ngrok服务器,需要如下条件:
1、经过备案的域名;
2、具有外网ip的服务器,我这里使用的是1核2g的阿里云服务器,系统是CentOS7.6;
3、安装成功的Docker环境。
二、搭建过程
1、直接从docker仓库拉取镜像
docker pull jueying/ngrok-server
2、运行docker镜像
docker run -d --name ngrok-server -p 80:80 -p 443:443 -p 8082:8082 jueying/ngrok-server huanzhidadi.xin 80 443 8082
注释:
docker run -d --name ngrok-server -p 主机http端口:容器http端口 -p 主机https端口:容器https端口 -p 隧道port:隧道port jueying/ngrok-server 域名 容器http端口 主机https端口 隧道port
3、查看日志,看看是否有报错信息
docker logs ngrok-server
要等待出现如下信息才算启动成功,然后才能执行第四步的操作:
4、从容器内拷贝ngrok客户端:
docker cp ngrok-server:/usr/local/ngrok/bin/ /tmp/
然后在你服务器的/tmp/bin/中可以找到win64, win32和macos64对应的客户端。
5、登录阿里云的云服务器ECS管理页面,点击本实例安全组,在安全组列表tab页中点击配置规则,点击右上角的添加安全组规则按钮,在入方向增加第二步中的主机xxx端口对应的端口号,这里我增加的是80、443和8082端口。
6、将你的独立域名解析到docker所在主机ip,增加对应的A记录,不要忘记增加一个子域名的A记录,我这里增加的是wh。
7、从你的云服务器中把ngrok拷贝到你的内网电脑上,因为我本机系统是win10,所以我拷贝的是/tmp/bin/windows_amd64/ngrok.exe文件。
8、在同级目录建立配置文件ngrok.cfg,内容如下:
server_addr: "你的域名:隧道端口"
trust_host_root_certs: false
server_addr例子:abc.com:8082,隧道端口就是第2步配置的最后一个端口号
9、在同级目录建立批处理文件start.bat,内容如下:
ngrok.exe -config=ngrok.cfg -proto=http -subdomain=wh 8080
注:ngrok.exe -config=ngrok.cfg -subdomain=子域名 本地端口
本地端口就是你想要在外网访问的本地应用的端口号了。
10、双击start.bat,启动属于你自己的ngrok服务器吧。


2019-08-24 11:23:03
ping aaa.bbbb.com 在阿里云ping我解析的域名不通,是这个原因吗?在阿里云确实ping不通这个设置的域名,我在域名解析设置了指向的服务器IP