ngrok 反向代理,实现外网访问本地服务器
2017-6-28 guoweidong 服务器
1. ngrok介绍ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。简单来说就是可以通过外网访问你本地的服务器。这样可以方便调试本地的后台代码,不用老是把代码上传到外网服务器如bae、sae等。
2.ngrok能做什么
ngrok不但提供了一个在外网能够安全的访问内网Web主机,还能捕获所有请求的http内容,方便调试,甚至还支持tcp层端口映射,不局限于某一特定的服务。支持Mac OS X,Linux,Windows平台。
通常,映射内网到外网的方法有:
- 使用路由器做端口映射或DMZ主机
- 花生壳等动态域名软件
- 自行搭建VPN,再做端口转发等
3.ngrok基本使用
从https://ngrok.com/
下载ngrok 然后注册一个账号 获取官方分配一个密钥
访问http://aaa.ngrok.com就可以了 Web Interface 可以通过Web页面管理ngrok
访问https://ngrok.com/dashboard 可以管理密钥
-
tcp端口转发,这意味着可以在外网ssh到本机了,当然外网端口是随机分配的。
ngrok -proto=tcp 22 -
转发到局域网其他的机器。
ngrok 192.168.0.1:80 -
绑定顶级域名(付费才可用),在dashboard中添加域名,将域名cname解析到ngrok.com即可。
ngrok -authtoken 密钥 -hostname test.sqzr.com 80
-
client
:表示转发http到本机8080,同时要求验证, -
ssh
:表示支持远程访问, -
test.yaosansi.com
: 绑定了域名转发到9090
注明:每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port:
-
proto
: 指定本地地址和端口 (必填)。 -
subdomain
: 指定二级域名,如果没有配置,ngrok会默认生成一个与隧道节点一样的名字的二级域名。 -
auth
: 用于在http(s)中身份认证。 -
hostname
: 指定顶级域名。 -
remote_port
: 用于在tcp隧道中指定远程服务器端口。
-
authtoken
: 用于设置登录ngrok的授权码,可以在ngrok首页的dashboard中查看到。 -
inspect_addr
: 用于设置监听ip,比如设置为0.0.0.0:8888
意味着监听本机所有ip的8888
端口上