不同的 IP 地址不能两次使用 80 端口吗?

不同的 IP 地址不能两次使用 80 端口吗?

我现在有一个有趣的问题。在 Windows Server 2012 R2 上,我有两个 IP 地址,分别是192.0.2.1192.0.2.2。在一个地址上,例如,192.0.2.1一个 Web 服务器在端口 上运行80,该端口在 C# 中使用 实现HttpListener。在另一个地址上,例如,我尝试使用 Go 程序和192.0.2.2打开端口。Go 程序收到一条错误消息,提示无法打开端口。首先启动 C# 程序。我使用管理员权限启动 Go 程序。80http.server{}

当我用来netstat检查哪些端口在哪些地址上使用时,第二个地址192.0.2.2完全未被使用。端口80仅由第一个地址的 C# 程序打开192.0.2.1

这完全没有意义。我是不是漏掉了什么?

两周前我遇到过类似的情况,当时 Ubuntu 和两个 Go 程序都使用443不同 IP 地址上的端口。这完全没有问题,而且立即运行。

答案1

Web 服务器需要配置为仅绑定到目标 IP 地址。如果将其配置为绑定到任何地址,则您不能将同一端口用于任何其他地址。

netstat仅显示普通内容连接的套接字。您需要使用-a来显示正在监听的、可能未连接的端口。任何分配给监听的端口都不能以其他方式使用。使用-ao也很方便,因为它会在端口旁边显示 PID。

相关内容