【问题标题】:Server works on localhost but not with ip on port 80服务器在 localhost 上工作,但在端口 80 上不能使用 ip
【发布时间】:2018-06-17 07:30:51
【问题描述】:

我有这台基本服务器并在一台特定的 PC 上,如果我访问 http://localhost 它工作正常。但是,如果我使用它的 IP 或尝试使用它的 IP 从任何其他设备连接,它就不起作用。我尝试在其他几台 PC 上运行它,它运行良好,我也确信它过去曾经运行过。因此,我尝试在防火墙中手动打开该端口以用于端口 80 的入站连接,但仍然无法正常工作。我还用端口 3000 进行了测试,这似乎有效。所以这与端口有关。我尝试使用 netstat,查看端口 80 上是否正在运行其他任何东西,但我找不到任何东西。有什么想法吗?

var express = require('express');
var app = require('express')();
var webHttp = require('http').Server(app);
app.use(express.static('public'));
webHttp.listen(80)

谢谢, 尼克

【问题讨论】:

  • 这里有一个例子让它更清楚。我在具有本地 IP 192.168.1.104 端口 80 的 PC 上运行上述服务器。如果我尝试从这个 URL localhost 访问它,它工作正常。如果我尝试从 IP 访问它,192.168.1.104,它不会。现在,如果我将服务器端口更改为 3000,localhost:3000192.168.1.104:3000 都可以正常工作。
  • 如果你输入http://192.168.1.104甚至http://192.168.1.104:80会怎样?
  • 我都试过了,但它也不起作用,这是特定于这台电脑的。它适用于其他电脑
  • 如果它在另一台 PC 上运行良好,那么这只是特定 PC 的一些配置,与您的代码无关。
  • 是的,我明白了。我只是问是否有人有类似的问题并知道可能导致这种情况的原因。我刚刚使用了这个来自 MS 的 (docs.microsoft.com/en-gb/sysinternals/downloads/tcpview) 工具来检查端口 80 上是否运行了其他任何东西,但它是干净的。

标签: node.js http express ip localhost


【解决方案1】:

好的,我找到了!它是在同一个端口上运行的Skype!我使用此工具https://docs.microsoft.com/en-gb/sysinternals/downloads/tcpview 检查在端口 80 上运行的所有内容。我的菜鸟错误是,我希望看到端口 80 与所有其他端口(IP:端口)一样,但它只显示为“http”。

【讨论】:

  • 所以,这并不能解释为什么 http://localhost 可以正常工作。您对问题的描述有问题。
  • 你说得对,这听起来对我来说也不正确,但我不是网络专家知道为什么会这样。我只是仔细检查并重新打开了 Skype,这又坏了。如果您愿意,我可以进行屏幕录制,但我很确定我对问题的描述和解决方案都很好。
  • 那台计算机上是否有多个网络适配器?
  • 是的,我有一个 LAN(没有连接到任何地方)和无线(连接到家庭路由器)。我尝试禁用 LAN 适配器并再次运行所有测试,但没有任何影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
相关资源
最近更新 更多