Microsoft Edge 不会在 Vagrant VM 中加载本地 nginx 网站
Posted
技术标签:
【中文标题】Microsoft Edge 不会在 Vagrant VM 中加载本地 nginx 网站【英文标题】:Microsoft Edge won't load local nginx website in Vagrant VM 【发布时间】:2016-11-14 23:26:17 【问题描述】:我遇到了一个奇怪的问题,即 Microsoft Edge 无法加载托管在 vagrant 虚拟机中的本地 Craft CMS 网站。任何加载本地配置的主机名或 IP 的尝试都会返回“嗯,我们无法访问此页面”。错误。
我的主机文件中有一行:
192.168.10.12 test.craft.dev
我已经阅读了有关 Microsoft Edge 无法正确处理主机文件的各种资源,但即使是 IPv4 地址也无法正常工作。我已经尝试了一些与 Internet 选项调整相关的建议,但没有任何效果,但似乎主机文件不是问题。
网络配置使用 NAT 并在192.168.10.x
范围内设置 IP(由Homestead.yaml
定义,如果我分配一个 public_network 并使用我的 LAN 网络 DHCP 范围获取 IP,Edge 可以访问此 IP,但它没有解释为什么所有其他浏览器都能正常工作而 Edge 没有它。
值得一提的是,本地 Craft 主机名可以在所有其他浏览器(包括 IE)中正常加载。由于某些网络级别的问题,Microsoft Edge 在 VirtualBox 中加载本地网站时是否存在特定问题?
【问题讨论】:
你是否在 about:flags 中启用了 localhost 环回? @Sampson 是的,已启用环回。 有人找到解决方案了吗? @Blakethepatton 除了切换适配器类型以在 LAN 网络范围内获取 IP 之外,我无法让它工作。这似乎是 Edge 以不同方式对待网络堆栈的方式。 【参考方案1】:安装并运行fiddler。它会自动完成所有工作。
【讨论】:
这按预期工作。非常感谢你分享这个。此答案应标记为有效解决方案。 这是我在尝试了网络上的所有提示后能找到的唯一可行的解决方案。提琴手知道我们不知道什么:D 迄今为止最简单的解决方案。下载、安装并运行 fiddler,Homestead 立即在 Edge 中运行【参考方案2】:Edge 浏览器似乎会注意您用来访问网站的界面。我的猜测是您正在使用 Vagrant 来启动 Virtualbox VM。我在下面的回答假设您通过 Virtualbox 仅限主机的网络或其他 NdisDeviceType 为 1 的网络接口访问。
什么不起作用
以下都不适合我:
使用 about:flags 并确认“允许本地主机环回”已开启
控制面板、网络和 Internet、Internet 选项、安全性以及将我的站点明确添加到受信任的站点或本地 Internet。
CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
我的环境
就我而言,我在 Windows 10 build 1803“Spring Creators Update”上运行了 VirtualBox 5.2.18。使用边缘 42.17134.1.0。我的 VM 来宾有一个仅限主机的网络。例如192.168.7.0/24。我无法从 VM 主机上的 Edge 访问地址,例如 http://192.168.7.0
。该站点由运行在我的 VM 来宾中的 Web 服务器托管。请注意,此地址在 Google Chrome、Internet Explorer 11 等中运行良好。
什么有效
解决方法如下:
查找仅主机网络的接口号。我从 Windows 命令行运行“路由打印”,在我的例子中,“接口列表”中显示的第一个数字是 17。
使用regedit将接口类型从1改为0。关键是:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class4d36e972-e325-11ce-bfc1-08002be10318\XXXX
在我的例子中,XXXX 是 0016,因为我的接口号是 17。我必须将 *NdisDeviceType
从 0 更改为 1。该键名中的 * 是一个字面星号。我必须重新启动才能使更改生效。
答案是从“Jani L”于 2017 年 10 月 3 日在下面引用的第一个 URL 上发布的帖子中收集到的,但它没有提供有关如何确定接口编号的线索。下面的第二个参考是我最初发布此解决方案的线程。
参考资料:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10142843/
https://social.technet.microsoft.com/Forums/en-US/0face535-3c7a-4658-be34-6c376322ca34/microsoft-edge-cant-open-local-domains
https://www.virtualbox.org/ticket/15565
【讨论】:
【参考方案3】:您似乎正在使用Laravel Homestead box。如果是这样,您可以将您的主机端口之一forward 连接到 VM 的 80 端口。因此,您将能够访问托管在 MS Edge 上的 VM 上的网站。
这是我所做的:
ports:
- send: 8000
to: 80
如果您不想输入 yourdomain.dev:8000,您可以使用 fiddler。因此,您将只能输入 yourdain.dev。 :D
【讨论】:
为什么要这样做?我不明白这个问题,所以我不确定这是什么“修复”。 所以,我认为您应该先了解问题...把它改成8000,它工作了。 因此,您应该拥有:127.0.0.1 test.craft.dev 而不是:192.168.10.12 test.craft.dev(流浪机器的 IP),然后在 MS Edge 上键入 test.craft .dev:8000,它会工作。 那么edge默认监听8000端口?为什么chrome监听80端口而不监听edge?谢谢!! 我的回答是:我不知道,对于这两个问题。我只是说它永远不会通过 80 端口在 vagrant 机器上加载网站。不过,您可能可以使用其他端口。以上是关于Microsoft Edge 不会在 Vagrant VM 中加载本地 nginx 网站的主要内容,如果未能解决你的问题,请参考以下文章
Chrome内核的Microsoft Edge 浏览器开始推送,到底香不香?
windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录。请以非管理员身份重新启动 Microsoft Edge,然后重新