模拟对Google Chrome浏览器中的etc / hosts文件的操作


30

如何设置Chrome浏览器以在本地而不是从标准的etc / hosts文件中引用主机名查找?

调试网站时,有时在C:\ Windows \ system32 \ drivers \ etc \ hosts中设置条目以将某些域替换为localhost 很有用,因此允许我测试即时版本的网站或可能与实时实际站点发生冲突。

我可以模拟并简化此过程的方式设置Google Chrome吗?

我不会修改浏览器实例的行为,就好像修改了etc / hosts一样,尽管即使在扩展中这也可能带来过多的安全风险。


请对此功能请求加注
阿里(Ali)

Answers:


13

我刚发现Host Switch Plus Chrome扩展程序可以做到这一点;)


Host Switch Plus不适用于我和其他许多人。
zylstra

1
Host Switch Plus完全不这样做。它更改代理。但是目标是更改域IP。(模拟DNS服务器)
TEXHIK '17

对我不起作用,对不起。
Serzhan Akhmetov

7

实现您实际目标的一种方法根本不涉及Chrome扩展程序,甚至根本不涉及Chrome。这样的方法是设置一个智能代理HTTP服务器,将Chrome指向它,然后将重写规则添加到代理服务器中,以重写后台的URL。

有很多人使用各种不同的代理HTTP服务器来执行此操作-太多了,无法在此处给出答案。它们这样做是为了切换广告,Web Bug等,但是其原理和机制与您要执行的操作相同。他们希望WWW浏览器正常获取特定的URL,但其接收到的实际内容是某些其他(本地或其他)URL的内容。WWW浏览器唯一需要知道的是它通过代理服务器与Internet通讯。

有关示例,请参见SourceForge上广告Zapper。这是一个Perl脚本,可与Squid代理HTTP服务器一起使用,以在代理服务器中即时重写URL。从配置数据库中可以看到,人们已经将其机制用于多种目的,从确保始终看到新闻服务文章的“可打印”形式到摆脱互联网色情网站上的随机广告重定向。

请注意,这远远好于您对hosts文件进行的操作,该文件是操作WWW服务的不合适机制。 hosts仅处理名称→地址查找,将需要进行名称→地址查找的其他所有内容(在WWW浏览器之外)进行筛选,并且(您可能已经知道)需要将每个重写的主机名另外设置为虚拟主机目标内容HTTP服务器。相比之下,这种重写代理HTTP服务器处理URL,并且仅影响HTTP和首先配置为使用它的WWW浏览器。因此,它可以做一些事情,例如只重写JavaScript URL,而将其他所有东西都留在同一个WWW网站上。将整个主机名重写为一个;并(进一步)进行模式匹配。(请注意,在Ad Zapper的配置数据库中有这种情况的实例。)而且可以做到的事情是,一个WWW浏览器通过重写代理查看世界,而另一个WWW浏览器直接在单台计算机上同时查看它。


与Chrome扩展程序相比,它还有一个好处-它可以跨浏览器使用!现在,我仍在使用hosts文件,但如果实际需要,我将考虑切换到代理。
ripper234 2011年

4

我虔诚地使用(并仍在使用)HostAdmin,但是每次都要清空缓存或每次打开新的隐身窗口一直很麻烦,因此去年我最终为自己开发了一个Chrome扩展程序,以解决类似情况,并且我最近在Chrome网上应用店中发布了一个非常粗糙的版本,称为LiveHosts

要点是,尽管@JdeBP是正确的,并且设置代理将是正确的解决方案,但这通常不是一个选择。Chrome扩展程序无法完全复制当您更改主机文件时发生的情况,因此LiveHosts现在所做的是:

  • 使您可以设置多个主机名/ IP条目;
  • 检测对已定义主机名之一的请求;
  • 使用适当的HTTP主机标头将请求重定向到所需的IP;
  • 在地址栏网址中添加一个直观的(很丑陋,我承认)引用,看起来像 http://127.0.0.1/www.example.com/whateverelse ;
  • 允许同时在不同选项卡中进行不同的主机/ IP配对。

它虽然不漂亮,但对于试图在各种环境之间快速切换的标准Web开发人员来说已经足够了。当然有一些警告:

  • 取决于服务器,网页中引用站点URL的部分(例如href和src属性)可能与原始站点不同;
  • window.location 具有不同的值,可能会抛出JavaScript代码段;
  • 大多数“跨来源”请求均无效。

0

如我所料,虚拟主机插件是唯一对我有用的插件。

无需主机重定向或DNS即可访问服务器的虚拟主机。


2
对我来说,此扩展似乎将客户端重定向到IP地址,这与修改主机文件完全不同。
杰夫·沃德'18

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.