更新后 Google Chrome 虚拟主机无法使用 ERR_NAME_NOT_RESOLVED 错误

Posted

技术标签:

【中文标题】更新后 Google Chrome 虚拟主机无法使用 ERR_NAME_NOT_RESOLVED 错误【英文标题】:Google Chrome virtual hosts not working with ERR_NAME_NOT_RESOLVED error after update 【发布时间】:2015-08-09 05:58:43 【问题描述】:

早上,当我在 ubuntu 上将 Chrome 更新到最新版本时,我在 apache 上的所有本地虚拟主机开始出现此错误。

虽然它们都在其他浏览器上工作,但 chrome 开始出现 ERR_NAME_NOT_RESOLVED 错误。

Screen shot for the error

【问题讨论】:

【参考方案1】:

这样解决了:

通过在 Chrome 浏览器中键入以下内容来清除 Chrome 的 DNS 缓存

chrome://net-internals/#dns

截图 -> Flushing Chrome DNS cache

您将看到一个“清除主机缓存”按钮。按那个DNS缓存 将被刷新。

保持此 DNS 窗口打开。现在在浏览器中访问虚拟主机 对我来说是 http://api.localhost。一旦你这样做,你会看到一个 DNS 窗口中的新条目。对我来说是“localhost.” 注意 localhost 末尾的句点“.”显示错误。

最后一步是简单地将这个条目添加为

127.0.0.1 localhost.

在位于的主机文件中 对于 ubuntu:/etc/hosts

对于 Windows:C:\Windows\System32\drivers\etc\hosts

另一种解决方案可能是在本地虚拟主机域的末尾放弃 .localhost /.dev

这与谷歌的一些新变化有关。 “.dev”和“.local”属于google的TLD(在人们关心DNS的互联网角落,谷歌申请上百个新***域名,包括.dev等引起了不小的轰动)

使用您拥有的域名。可能使用像“localhost.dev.$yourdomain”这样的全名可以帮助设置。

【讨论】:

很棒的答案。我翻遍了每一个 apache 配置文件,以为出了点问题。甚至没想过要尝试在 Firefox 中访问,但是当我这样做时,它起作用了,而且更加困惑。这立即对我有用。 对于 .dev 非常重要,例如mylocalsite.dev。一旦我将所有内容更改为mylocalsite.local,它就可以工作了。 在 Windows 上尝试了您的建议,但不幸的是没有奏效:( 我在后缀中有 .dev。将其更改为其他内容,并且可以在基于 chrome 和 chromium 的浏览器上运行 对我来说,这也是从 mysite.dev 到 mysite.local 的转变……但不知道为什么会这样【参考方案2】:

以下是如何修复 chrome 和 firefox 中以 .dev 结尾的 xampp 虚拟主机。谁不再工作(在大多数版本的 chrome 中,因为 .dev 是从谷歌注册和保留的真实域 - [Dev domain ICANN])。

在让虚拟主机正常工作方面遇到了很多麻烦 在 firefox 和 chrome 上,但最后我发现最好的解决方案 是为每个本地域创建两个不同的主机。所以我最终得到了类似的结果:这是 (C:\Windows\System32\drivers\etc\hosts) 中的主机文件:

这是必需的,因为如果你仍然希望你的本地主机活着

127.0.0.1 localhost.
::1 localhost.
fe80::1%lo0  localhost.

这在 Firefox 中运行良好。

127.0.0.1 laravel.dev
::1 laravel.dev
fe80::1%lo0 laravel.dev

这在 Chrome 上完美运行。

127.0.0.1 laravel.localhost
::1 laravel.localhost
fe80::1%lo0 laravel.localhost

这是我的 xampp httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "D:/xampp/htdocs/"
    ServerName localhost
    ServerAlias localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@laravel
    DocumentRoot "D:/xampp/htdocs/laravel/public/"
    ServerName laravel.dev
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@laravel
    DocumentRoot "D:/xampp/htdocs/laravel/public/"
    ServerName laravel.localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@testsite
    DocumentRoot "D:/xampp/htdocs/testsite/"
    ServerName testsite.dev
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@testsite
    DocumentRoot "D:/xampp/htdocs/testsite/"
    ServerName testsite.localhost
</VirtualHost>

我希望这对某人有所帮助,因为我浪费了几个小时,找到了最佳解决方案,并使事情顺利进行。 :)

标签 - 虚拟主机在 chrome 上不起作用。

【讨论】:

你能解释一下这两行的作用吗? ::1 laravel.localhost fe80::1%lo0 laravel.localhost。谢谢! 是的@Brett。第一个 ::1 是 IPv6 环回地址的缩写符号 - 相当于 IPv4 环回 127.0.0.1。第二行fe80::1%lo0 laravel.localhost 是相当于 127.0.0.1 的 IPv6。这个%lo0 可能会有所不同,具体取决于您的本地地址和接口。 It's an IPv6 address. The fe80:: block is reserved for link-local addresses. Link local addresses are used for packets sent only to directly connected devices (not routed). The network discovery protocol (NDP) is the biggest user of link-local addresses (NDP sorta replaces ARP and DHCP in IPv6). 标签 - 虚拟主机在 chrome 上不起作用。这是什么意思我已经做了更改,但它仍然不适用于 chrome 而它适用于 firefox【参考方案3】:

另一种选择是将文件 /etc/hosts 中定义为 your_domain.localhost 的任何条目替换为 local.your_domain 之类的内容。但这也需要您更改虚拟主机文件中的“ServerName”和“ServerAlias”值。

【讨论】:

【参考方案4】:

对我来说是这样的:

在主机中:

127.0.0.1 localhost.
::1 localhost.
fe80::1%lo0  localhost.

在 httpd.conf 中:

<VirtualHost localhost>
  DocumentRoot "D:/Apache/htdocs/projects/some-project-root"
  ServerName some-project.localhost
</VirtualHost>

重要的是写入 VirtualHost 标签“localhost”,“127.0.0.1”在 chrome 中不起作用。

【讨论】:

以上是关于更新后 Google Chrome 虚拟主机无法使用 ERR_NAME_NOT_RESOLVED 错误的主要内容,如果未能解决你的问题,请参考以下文章

google浏览器Chrome无法访问localhost等本地虚拟域名的解决方法

手机chrome无法开启同步

更新Ubuntu中chrome的方法

Google Chrome、JQuery 和带有键的无法解释的事件行为

如何关闭Google Chrome自动升级

chrome 检查更新时出错:无法启动更新检查