ngrok 内网穿透/映射神器
目录
- ngrok介绍
- ngrok能做什么
- ngrok基本使用
- ngrok进阶使用
4.1 自定义子域名
4.2 tcp端口转发
4.3 自定义HTTP验证
4.4 转发到局域网其他的机器
4.5 绑定顶级域名 - ngrok配置文件
5.1 ngrok将参数写到文件
5.2 其它配置参数
5.3 连接到自己搭建的ngrokd 服务器
5.4 支持http代理服务器
1. ngrok介绍
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放
百度百科 baike.baidu.com/view/…
ngrok官方: https://ngrok.com/
2. ngrok能做什么
ngrok不但提供了一个在外网能够安全的访问内网Web主机,还能捕获所有请求的http内容,方便调试,甚至还支持tcp层端口映射,不局限于某一特定的服务。支持Mac OS X,Linux,Windows平台。
通常,映射内网到外网的方法有:
- 使用路由器做端口映射或DMZ主机
- 花生壳等动态域名软件
- 自行搭建VPN,再做端口转发等
- …
DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web、Mail、FTP等。这样来自外网的访问者可以访问DMZ中的服务,但不可能接触到存放在内网中的公司机密或私人信息等,即使DMZ中服务器受到破坏,也不会对内网中的机密信息造成影响。
百度百科 baike.baidu.com/view/…
3. ngrok基本使用
|
|
- 运行
将本机80端口映射到互联网上
|
|
运行正常后的结果
|
|
这时访问 https://3a4bfceb.ngrok.com
就可以了
4. ngrok进阶使用
使用ngrok时并不强制用户注册,但注册后会附加更多功能。
注册后,登录(管理界面)[https://ngrok.com/dashboard],获取自己的账号秘钥。
例如:1WS0m987654321YFabcd
- 首次使用 :
|
|
注:同一电脑只需使用一次
4.1 自定义子域名
|
|
这样会生成 https://yaosansi-app.ngrok.com
代替这样随机生成的子域名 http://3a4bfceb.ngrok.com
4.2 tcp端口转发
|
|
这样就可以通过外网ssh到本机了,当然外网端口是随机分配的。
4.3 自定义HTTP验证
|
|
4.4 转发到局域网其他的机器
|
|
4.5 绑定顶级域名(付费可用)
在dashboard中添加域名,将域名test.yaosansi.com
cname解析到ngrok.com即可。
|
|
5. ngrok配置文件
5.1 ngrok将参数写到文件
默认是放在~/.ngrok。例如:
|
|
这里定义了三个隧道:
-
client
:表示转发http到本机8080,同时要求验证, -
ssh
:表示支持远程访问, -
test.yaosansi.com
: 绑定了域名转发到9090
启动这三个隧道服务:
|
|
运行结果如:
|
|
注明:每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port:
-
proto
: 指定本地地址和端口 (必填)。 -
subdomain
: 指定二级域名,如果没有配置,ngrok会默认生成一个与隧道节点一样的名字的二级域名。 -
auth
: 用于在http(s)中身份认证。 -
hostname
: 指定顶级域名。 -
remote_port
: 用于在tcp隧道中指定远程服务器端口。
5.2 其它配置参数
|
|
-
authtoken
: 用于设置登录ngrok的授权码,可以在ngrok首页的dashboard中查看到。 -
inspect_addr
: 用于设置监听ip,比如设置为0.0.0.0:8080
意味着监听本机所有ip的8080
端口上
5.3 连接到自己搭建的ngrokd 服务器
(如何搭建自己的ngrokd服务器?)[http://blog.csdn.net/shikewei0103/article/details/41284815]
搭建好自己的服务器后:
|
|
-
server_addr
: 指向自己的服务器 -
trust_host_root_certs
: 确保TLS 连接受信任
5.4 支持http代理服务器
|
|
-
http_proxy
: 指定 http 代理服务器