端口监听 localhost:8000 但不监听 ip:8000

端口监听 localhost:8000 但不监听 ip:8000

您好,我在端口 8000 上运行一个 Web 应用程序。当我从主机服务器 localhost:8000 访问它时,它响应正常,127.0.0.1:8000 也可以工作,但 192.168.1.7:8000 不起作用。192.168.1.7 是我的服务器的 IP。

另外,如果我尝试转到在端口 80 上运行的另一个 Web 应用程序,它可以工作 192.168.1.7

我启用了 ufw 防火墙并设置了 ufw 默认允许。我使用的是 ubuntu server 12.04

关于为什么我无法使用 ip 地址:8000 访问端口 8000 上的应用程序,有什么建议吗?

提前致谢!

答案1

正如 @JamesHenstridge 指出的那样,您观察到的行为不是由于 Ubuntu 在某些 IP 上阻止了您的应用程序,而是由于您的应用程序明确仅绑定到本地环回接口 (127.xxx)。至少如果您没有安装和设置防火墙来专门阻止该端口。

您需要查阅应用程序的文档,了解是否有设置可以使其在其他(或所有)接口上监听。

答案2

在您的应用程序的一个配置文件中,您应该确保您的 IP 是 192.168.1.7,并且还应该设置您的应用程序来监听“外部 IP:yourport”。

在您当前的配置中,您的应用仅监听来自 127.0.0.1:xxxx 或 localhost:xxxx 的请求。

您可能需要在配置文件中将服务器的 IP 地址从 127.0.0.1:8000 更改为 192.168.1.7:8000

在你的应用程序中的某个地方,你可能需要将监听的 IP 地址从 127.0.0.1:8000 更改为 0.0.0.0:8000

0.0.0.0:8000 意味着您的应用应该监听端口 8000 上的任何 IP。

通过输入

 sudo netstat -plnt | grep 8000

您应该看到以下内容,它将确认您的应用正在监听任何端口:

tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN nnnn/yourapp

相关内容