首页 > 解决方案 > 如果服务器机器监听更多的 65536 端口会发生什么?

问题描述

在 Storm 的情况下,它说“每个工作人员使用单个端口来接收消息,并且此设置定义了哪些端口可供使用。”,这意味着我可以将插槽号设置为大于 65536 的数字,以便服务器机器可以打开超过 65536 个进程并且每个进程都侦听一个唯一的端口?

不是一次有多少个tcp连接,我知道tcp连接可以超过65536。

那么服务器机器打开超过 65536 个进程并侦听超过 65536 个端口会发生什么?

标签: socketstcpportapache-storm

解决方案


当一个进程监听 TCP 端口时,它不仅仅监听端口。它侦听端口号和 IP 地址的组合。通配符 IP 地址可用于指示侦听所有 IP 地址。

对于本地连接,您可以将 127.0.0.2 或 127.1.0.1 等 IP 地址与各种端口号结合使用,以超过 65,536 个本地端口。通过这种方式,您可以拥有超过 65,536 个端口,并且工作正常。但是其他机器无法访问 127.0.0.0/8 内的 IP 地址,因此只能访问本地。

要拥有可以通过网络接受入站连接的端口,您必须将其绑定到可通过该网络访问的 IP 地址与 TCP 端口号的组合。因此,只有一个网络地址的机器只能有 65,535 个不同的端口,可以建立传入的 TCP 连接。但是如果您使用的软件允许您指定要绑定的 IP 地址,您可以通过为机器分配额外的网络 IP 地址来超出此范围。(如果没有,您可以轻松破解它以允许这样做。)


推荐阅读