Awesome Open Source
Awesome Open Source

新版本正在开发中,感谢大家支持!会提升稳定性和便捷性。

Multiple-host

下载地址: 私人主机-win版 私人主机-mac版 百度云

无论你是开发、QA还是产品,在目前的开发及测试中都离不开host。host为开发和测试带来了诸多便利,但也有很多烦恼:

  • 切换host总是不能立即生效,换一套host环境经常需要重启浏览器。
  • 经常在一套host环境下比如(betaA)想对比一下线上的情况,做不到。
  • 由于经常在多套host环境中切换,导致系统host环境乱七八糟,发现问题都不确定到底在哪套环境下。

multiple-host就是为了解决烦人的host问题而诞生的 , 它采用了 沙箱机制,在一个独立的浏览器进程中使用host。

它可以做什么

  • 打开一个使用虚拟host环境的浏览器,不受系统host影响。
  • 改了host刷新就生效,再也不用重启浏览器了。
  • 实时显示当前页面的host情况,在哪套环境下一清二楚。
  • 正常浏览器不受任何影响,从而轻松实现两个浏览器,一个看线上,一个看beta的功能。

效果图:

如何使用

multiple-host是一个应用程序,解压缩点击运行即可。

1 点击,mac用户是app应用,windows是exe,得到如下运行界面:

程序左侧有四个功能:

分别是 开始使用日志输出代理host设置程序设置

开始使用

开始就是唤起浏览器的入口,如下展示,当前提供了唤起chrom、唤起firefox和其他浏览的功能。

chrome

比如点击唤起chrome,会打开一个chrome,在这个chrome中的所有访问都不受系统host影响,只受虚拟host影响,虚拟host的设置在 代理host一栏。同时,你通过正常手段打开的chrome不受这个影响,只受系统host影响,从而你可以给正常chrome配一套host环境,给从程序中打开的chrome配另一套虚拟的host环境。

firefox

打开firefox和打开chrome同理,可以打开一个只受虚拟host影响的firefox。

ie及其他

由于某些原因,不是所有的浏览器都可以实现打开两个互不影响的实例(如ie),而且其实我们也不需要所有的浏览器都要用两套环境去做对比,但是我们想要测试其他浏览器比如ie的时候,也想用虚拟host怎么办?

可以打开系统代理,让所有的请求都受这个虚拟host的影响,windows用户我提供了一个快捷的方式,可以一键配置和关闭系统host,mac用户由于权限问题,暂时需要自己去 设置。设置了系统代理之后,所有的浏览器都可以享受到虚拟host的配置,而且是事实生效的。

代理host设置

代理host设置我用react写了一个支持多环境切换的host工具,支持筛选、一键启用等功能,从而可以轻松管理虚拟host。

日志输出

日志输出用于实时打印当前的host情况,当请求被host处理过时,就会打印出一条日志显示当前请求被指向了哪个host,从而让你清晰的知道当前处于哪套环境。

设置

设置非常简单,如果你的chrome和firefox没有安装在C盘,需要你在设置中调整一下chrome和firefox的启动路径。

如果9393端口被你的其它程序占用,你也可以在设置中更改代理端口。

常见问题

Q:移动端能否借用这个host工具?

A:和charles等工具使用方法一样,将手机的请求代理指向本机ip:9393 端口,即可使用。如果还需要配合charles,参加下述的和charles共存。

Q:使用了multiple-host,还想用nginx怎么办?

A: multiple-host根据host转发请求的时候并没有修改http header中的 Host name,只是修改了请求的ip,nginx一般是通过host name设置规则,并不受影响。

Q:使用了multiple-host,还想用fiddler怎么办?

A: multiple-host和fiddler原理一样,都是起了一个代理server转发请求,想要虚拟host生效的同时fiddler也生效,必须实现multiple-host是fiddler的上游,也就是实现 请求-> fiddler -> multiple-host -> server 的链。好在fiddler提供了这样的功能。

使用步骤:

  • 打开multiple-host的系统代理。
  • 打开fiddler
  • 使用正常浏览器(不是通过multiple-host唤起的浏览器)访问

你会发现fiddler可以正常记录所有请求,同时虚拟host也会生效。

如果上述步骤没有成功,检查fiddler的 Tools -> Fiddler Options -> GateWay 中是否选上了默认的 Use System Proxy

Q:使用了multiple-host,还想用charles怎么办?

A: 同fiddler类似,charles和multiple-host共存也需要实现 请求-> multiple-host -> charles -> server 的链。 具体配置在charles:

  • Proxy - External Proxy Settings
  • 勾选 Use external proxy server
  • 配置 http 和 https 请求的地址为 :127.0.0.1:9393 (端口号默认为9393,修改过则不一样)

然后将你的浏览器/手机代理指向charles(默认为本机ip:8888),刷新发现请求会被charles采集到,同时,我们的host工具也可以生效。

Q:有bug或者出了新功能怎么更新?

A: multiple-host实现了一套自动更新机制,当有更新时会自动推送,用户点击确定更新之后,multiple-host会自动下载和覆盖当前目录的程序。

PS: 由于私人主机位于海外,如果更新过慢或者失败,可手动下载最新版,由于multiple-host并不需要按照,删除或者覆盖原来的文件夹就行了

changelog

1.0.6 修复删除default host引起的问题

1.0.5 设置默认的host

1.0.1-1.0.4 琐碎bug修复

1.0.0 UI风格大改版,利用react+redux构建可用性更强的UI


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (68,104
proxy (523
hosts (44

Find Open Source By Browsing 7,000 Topics Across 59 Categories