我有一个本地 DNS 服务器,可以将所有 URL 解析*.domain.tld
为127.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
答案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 扩展直观且易于使用。安装扩展,在“主机名”字段中输入原始主机名,然后在“别名”字段中输入所需的别名并单击“添加”按钮。该规则将应用于包含所提供主机名的任何元素的所有页面。