【问题标题】:Can't access 127.0.0.1无法访问 127.0.0.1
【发布时间】:2016-04-05 05:59:27
【问题描述】:

我不知道这是什么时候开始发生的,但结果是 - 127.0.0.1 无法在任何地方的任何端口上工作(例如,浏览器显示无法连接)。以下是我的研究结果:

  1. localhost、COMPUTER_NAME 和实际 IP 地址都可以正常工作
  2. 我的 hosts 文件中没有什么特别之处
  3. ping 到 127.0.0.1,tracert 工作正常
  4. 硬编码了 127.0.0.1 的所有程序都无法运行(这一点让我最失望,因为在这种情况下我什么都做不了)

我还能做些什么来找出问题的根源并解决它?

更新:一旦 Redis 在 127.0.0.1 上工作并且 IIS 和 AzureStorageEmulator 都不能工作,我认为这只是 HTTP 的问题。

【问题讨论】:

  • 所以localhost 工作正常,但127.0.0.1 不行?你在hosts file中修改了什么吗?
  • 正确。我尝试了使用主机文件可以做的所有事情,但没有帮助。我猜是因为127.0.0.1不是域名,但是ip地址所以hosts文件不影响。
  • 你能解释一下你所说的“工作”是什么意思吗?你期望发生什么?你有在本地机器上运行的服务器吗?在哪个港口?
  • 我的意思是使用127.0.0.1时无法建立连接。例如,我运行 IIS 并且可以使用 localhost 访问站点,当我运行 azure 模拟器时,我也可以使用 localhost 访问它(尝试了不同的端口,但它们并不重要)。但我无法使用 127.0.0.1 连接到他们。

标签: windows networking ip localhost


【解决方案1】:

如果是 DNS 问题,您可以尝试:

  • ipconfig /flushdns
  • ipconfig /registerdns

如果这不能解决问题,您可以尝试编辑位于此处的主机文件:

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

并确保该行(并且没有其他引用 localhost 的行)在其中:

127.0.0.1 localhost

【讨论】:

  • dns 刷新没有帮助。 hosts 文件中的行不会改变任何内容。此外,如果我将除 localhost 之外的任何其他名称映射到 127.0.0.1 它也不起作用。
  • 您是否尝试过 ping 127.0.0.1 以查看是否有任何响应?
  • 抱歉,错过了。究竟哪些“程序”不起作用?是否仅在您的网络浏览器中(我知道您在上面提到过)?不管我会说尝试清除浏览器缓存和浏览器 dns。
  • 好问题。刚刚检查了 redis,它确实在 127.0.0.1 上工作。我猜是因为它不使用http,而是特殊的协议RESP。现在将更新问题。对于第二部分,这不是浏览器问题,Fiddler(用于 IIS)和 Visual Studio Server Explorer(用于 azure 模拟器)都无法连接到 127.0.0.1。
  • 您能否查看有关列出与服务绑定的 ip/port 的信息?它列在这个问题serverfault.com/questions/558204/…
【解决方案2】:

只有一个命令完成了这项工作

netsh http 添加 iplisten 127.0.0.1

【讨论】:

  • 谢谢!只想指出这个命令的文档msdn.microsoft.com/en-us/library/windows/desktop/…
  • 在寻找答案一整天后解决了我的问题。谢谢
  • 我想知道127.0.0.1是怎么停止监听的?哪个应用程序在我不知情的情况下进行了此配置。这在我安装 Docker 之前就可以工作,尽管我已经卸载了它,但它并没有恢复。所以我不知道是不是罪魁祸首。
  • 由于某种原因,当我这样做时,我所有的 IIS 站点都停止工作了
【解决方案3】:

如果万维网发布服务正在运行,请首先在 windows 下检查服务。如果不启动它。

如果你找不到它打开windows的IIS功能:在7,8,10 它在控制面板下,“打开或关闭Windows功能”。 互联网信息服务 万维网服务和 需要 Internet 信息服务 Hostable Core。 不确定是否有另一种方法可以让它在 Windows 上运行,但这适用于所有浏览器。 您可能还需要在 IE 设置下将 localhost 或 http:/127.0.0.1 添加到受信任的网站。

【讨论】:

    【解决方案4】:

    我遇到了类似的问题。检查您的监听端口。 我之前犯的一个错误是

    app.listen(() => console.log(APP_NAME} is listening on port ${PORT}`))
    

    确保包含如下所示的端口

    app.listen(PORT, () =>{
      console.log(`${APP_NAME} is listening on port ${PORT}`)
    })
    

    【讨论】:

      【解决方案5】:

      这个答案可能看起来过于明显,但在大多数情况下,只需删除“主机名”字段中的“localhost”条目就足够了:

      【讨论】:

        猜你喜欢
        • 2021-10-20
        • 1970-01-01
        • 2018-02-23
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 2012-01-31
        • 2020-12-04
        • 2021-12-31
        相关资源
        最近更新 更多