如何为 Chrome 浏览器设置自定义 DNS 服务器?

如何为 Chrome 浏览器设置自定义 DNS 服务器?

我有一个本地 DNS 服务器,可以将所有 URL 解析*.domain.tld127.0.0.1。此外,我还有一个具有相同地址 的生产服务器*.domain.tld。它们具有相同的名称,因为子域相互交互,并且我有硬编码的域 URL。我无法在生产服务器中更改它们。

问题在于从我的开发人员计算机访问生产服务器而不接触 DNS 服务器/etc/hosts

我找到了一些适用于 Chrome 的选项,例如--dns-server,,--host-rules但没有一个能用。我在 Ubuntu 12.10 64 位上安装了 Google Chrome 23.0.1271.64 和 Chromium 22.0.1229.94。

答案1

Chromium 的 DNS 解析器已损坏,它不会遵守 resolv.conf 中的顺序。因此,当我尝试连接到 VPN 上的主机时,系统会使用 VPN 的 DNS 服务器正确解析主机,但 Chromium 会使用非 VPN DNS,并将其解析为我的互联网提供商的广告页面(他们会免费向任何无法解析的主机回复该页面)。

我发现的唯一解决方案是将私有 IP 添加到 /etc/hosts。

答案2

您可以使用扩展将命名的 HTTP 请求重定向到使用 IP 地址的请求。

此解决方案不需要对 DNS 或 hosts 文件进行任何修改,并且可以通过扩展来启用或关闭此重定向:

调转器

答案3

如果--host-rules不起作用,请尝试--host-resolver-rules

例子:--host-resovler-rules=MAP example.com 127.0.0.1

请注意,我们不需要对“MAP……”部分加双引号。(已在 Chrome 非无头模式和 Chrome 无头模式的 89 版中验证)。

另请参见关于此问题的讨论:https://bugs.chromium.org/p/chromium/issues/detail?id=798793

答案4

https://chrome.google.com/webstore/detail/dns-overrider/acmhaiiijfheggcaanjlgpampclpbnoh

DNS 覆盖者

此扩展允许您覆盖网页内的域名。DNS Overrider 允许您用别名替换当前主机名。主机名将在诸如<img><script><a>、等标签中更改<link>。只有具有指定别名的主机名才会被替换。

使用 DNS Overrider,您可以即时替换主机名,而无需访问系统设置(例如主机文件)。DNS Overrider 可让您通过扩展设置页面选择要应用的规则。

DNS Overrider 是一款适用于网站和博客开发人员(前端和后端开发人员)的实用 Chrome 扩展程序。如果您使用的是网站的测试版本,则可以轻松且立即覆盖图像、脚本、锚点、样式表的主机名,而无需对代码进行任何更改,并评估网站标记和设计的正确性。

DNS Overrider 扩展直观且易于使用。安装扩展,在“主机名”字段中输入原始主机名,然后在“别名”字段中输入所需的别名并单击“添加”按钮。该规则将应用于包含所提供主机名的任何元素的所有页面。

相关内容