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 然后注册一个账号 获取官方分配一个密钥

使用cmd 到ngrok.exe的目录 ngrok -authtoken 密钥 -subdomain  二级域名 端口



访问http://aaa.ngrok.com就可以了    Web Interface 可以通过Web页面管理ngrok
访问https://ngrok.com/dashboard 可以管理密钥
  1. tcp端口转发,这意味着可以在外网ssh到本机了,当然外网端口是随机分配的。
    ngrok -proto=tcp 22
  2. 转发到局域网其他的机器。
    ngrok 192.168.0.1:80
  3. 绑定顶级域名(付费才可用),在dashboard中添加域名,将域名cname解析到ngrok.com即可。
    ngrok -authtoken 密钥 -hostname test.sqzr.com 80
4.ngrok配置文件 默认是放在~/.ngrok。(windows为:C:\Users*.ngrok)

  • client:表示转发http到本机8080,同时要求验证,
  • ssh:表示支持远程访问,
  • test.yaosansi.com: 绑定了域名转发到9090
ngrok start client ssh test.dorole.com  即可快速启动这三个隧道服务。


注明:每一个隧道的配置节点都有五个参数,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 端口上

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2017 www.elight.cn, All Rights Reserved