Firefox无法连接到本地网站,但Chrome可以

时间:2018-05-04 22:35:17

标签: ruby-on-rails macos firefox configuration

我有一个本地运行的Web服务器,它映射到MacOSX盒子上的project.name.localhost:3011。我的/ etc / hosts定义了:

127.0.0.1 project.name.localhost

我需要在Chrome和Firefox中浏览此服务器。当我访问http://project.name.localhost:3011/时,Chrome效果很好。 Firefox提供“无法连接”连接错误。我可以在本地服务器的控制台中看到,当我从FF尝试时,甚至没有连接尝试发送到服务器。

这是在FF版本59.0.2(64位)上。 FF对像这样的公共互联网站点和谷歌没有问题。

我已经尝试过这里建议的所有步骤: https://support.mozilla.org/en-US/kb/firefox-cant-load-websites-other-browsers-can 总之,这些步骤是:

  • 检查代理设置,验证代理是否已关闭
  • network.dns.disableIPv6
  • 中将about:config设为 true
  • network.dns.disablePrefetch
  • 中将about:config设为 true
  • 清除所有历史记录,包括Cookie和缓存

还尝试禁用此处所述的HSTS: https://support.mozilla.org/en-US/questions/1204380

ping project.name.localhost

也可以。没有本地DNS问题。

http://127.0.0.1:3011/给出了与使用主机名完全相同的错误。但是,我需要通过主机名访问服务器。它不是也不应该被配置为响应直接IP。

如何让FF通过主机名点击我的本地Web服务器?

编辑:两个同事在设置他们的系统时经历了他们所描述的相同问题,但他们都说“一天或两天后它就会自行消失”。我的问题持续数周并重新启动。

来自请求的控制台输出:

GET http://global.appen.localhost:3011/invoice_groups

Request headers (398 B) 
Accept  
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding 
gzip, deflate
Accept-Language 
en-US,en;q=0.5
Cache-Control   
no-cache
Connection  
keep-alive
Host    
global.appen.localhost:3011
Pragma  
no-cache
Upgrade-Insecure-Requests   
1
User-Agent  
Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/59.0

网络时间:

Blocked:          → 1 ms
DNS resolution:                  → 1 ms

8 个答案:

答案 0 :(得分:10)

编辑:不起作用[似乎内部使用此功能停止在Firefox中工作]

在Firefox类型中 关于:配置

在其中搜索本地主机并在下面标记为真

network.dns.native-is-localhost

答案 1 :(得分:2)

Firefox对“ .localhost”进行了特殊处理,这似乎引起了问题。当我将主机文件从project.name.localhost更改为project.name.devl时,它开始工作。

答案 2 :(得分:1)

您可能只需要清除FF浏览器缓存。有时您必须清除所有内容,而不仅仅是您正在处理的网站。你做过这个吗?旧的缓存可能会产生非常神秘的问题。

答案 3 :(得分:0)

您也可以尝试从命令行运行:

nbtstat -R

这将刷新你的Windows名称缓存。

我并不认为这会解决这个问题,因为这个名称可以在一个浏览器中运行,而不是FF。

确定,当您清除FF缓存时,请转到选项 - >隐私与安全安全。从那里你想要清除"缓存的Web内容"和"网站数据"。你得到了这两个吗?

如果仍然无法工作,你可能会发现一个FF错误,尽管这似乎不太可能。指定主机和端口号是非常标准的,在这种情况下,FF似乎不太可能无法做到这一点。

您也可以解决问题。只是在没有端口号的情况下呼叫主机会发生什么?您可能希望让服务器在端口80上提供测试页面,并查看该部分呼叫是否正常工作。这至少会将其缩小到端口号。或者,也许缩小到它没有正确调用服务器的事实。

答案 4 :(得分:0)

尝试创建另一个端点,例如localhost:3011 / test,看看是否有效,firefox可以检查你的url,你的后缀或前缀可能会考虑不完整并自动添加一些前缀,在位置栏类型about:config then搜索:fixup并双击browser.fixup.alternate.enabled使其变为false。看看是否有帮助。

答案 5 :(得分:0)

这与您在机器中的配置无关。当您访问localhost的子域并且Chrome不访问时,Firefox会添加“www”前缀。

答案 6 :(得分:0)

我会建议一些事情:

  • 在hosts文件中,添加名称www.project.name.localhost,以防Firefox向其添加www。它看起来像这样:

    127.0.0.1 project.name.localhost www.project.name.localhost

  • 使用HTTP标头分析器(如Fiddler)监控Firefox和Chrome在您使用http://project.name.localhost:3011/时所做的连接。这将告诉您解决IP是否存在问题,或者是否与Chrome提出的请求存在差异。

  • ping时,使用/ 4检查IPv4和/ 6以确保IPv6正常解析。

答案 7 :(得分:0)

我在Firefox上遇到了问题,它打开了localhost:1234,但是无法连接和加载static.localhost:1234中的任何资源。

这仅在指定端口的子域上发生。因此,static.localhost工作正常。

添加

127.0.0.1 static.localhost

hosts文件(位于C:\Windows\System32\drivers\etc中)为我解决了这个问题。