内网穿透 — 本地服务暴露到外网
因为开发的原因,总是需要临时将自己的服务暴露在外网。这个时候,在众多工具当中,发现一个小巧的 ngrok,点击这里 ➡️https://ngrok.com/download 先下载一个吧。
安装
因为我是苹果电脑,所以我选择了 Download for MacBook OSX 的版本,于是下载好的文件:
$ ls ngrok*
ngrok-stable-darwin-amd64.zip
可以解压安装了,我习惯将这些独立的小程序直接放在 /usr/local/bin
目录下。
$ unzip ngrok*.zip
$ mv ngrok /usr/local/bin/
这里的二进制文件
ngrok
,你有可能需要 root 权限,自行用 sudo 解决吧。
检查是否安装好了。
$ ngrok -v
ngrok version 2.3.34
看到版本,即是安装成功。
配置工具的鉴权(Token)
点击这里 ➡️https://dashboard.ngrok.com/auth 登录到管理后台,没有账号的话,选用 Github 的三方登录是可以的。你就可以看到一个带有Token的命令,很像:
$ ngrok authtoken PUT_YOUR_TOKEN_HERE
对外网暴露内网服务
假设哈,我们已经开发了一个网页,并且启动在了 8000 端口上,先本地启动一下服务:
$ python -m SimpleHTTPServer 8000
Serving HTTP on 0.0.0.0 port 8000 ...
本地浏览器访问一下 http://localhost:8000 可以正常工作的话,那么开始把它暴露到外网上:
ngrok http 8000
你就能到这个
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account Wang Xiaoqiang (Plan: Free)
Version 2.3.34
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://701d5f7c.ngrok.io -> http://localhost:8000
Forwarding https://701d5f7c.ngrok.io -> http://localhost:8000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
那么这个 Forwarding URL 就可以访问你自己的本地服务了哟:http://701d5f7c.ngrok.io。
Have Fun!
有任何疑问,欢迎交流,希望对日常的开发工作有所帮助哈。