更新后 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等本地虚拟域名的解决方法