只是一种好奇,如果我有一个与多个 IP 地址相关联的 NIC。端口是否与 IP 或 NIC 相关联?
例如,如果我的 NIC 有两个 IP,则 1) 192.168.8.18 和 2) 10.1.11.240
如果我在 192.168.8.18 上打开端口 1234,我是否也可以在 10.1.11.240 上打开端口 1234,否则会被禁止,因为 NIC 已经有端口 1234。
谢谢
只是一种好奇,如果我有一个与多个 IP 地址相关联的 NIC。端口是否与 IP 或 NIC 相关联?
例如,如果我的 NIC 有两个 IP,则 1) 192.168.8.18 和 2) 10.1.11.240
如果我在 192.168.8.18 上打开端口 1234,我是否也可以在 10.1.11.240 上打开端口 1234,否则会被禁止,因为 NIC 已经有端口 1234。
谢谢
当您打开一个绑定到 IP 地址的端口时,它被称为套接字。然后,如果您有多个 IP 地址,则可以在每个 IP 地址上打开端口,只要硬件允许。
关于你的问题,这2个连接可以同时建立。您还可以让一个服务在 192.168.8.18 上运行,另一个在 10.1.11.240 上运行,也使用相同的端口。
192.168.8.18:1234
10.1.11.240:1234
如果您阅读有关 OSI 模型的更多信息,您可以检查“端口”是否依赖于 L4(传输层),并且 L2-L3 之间存在 NIC。
Ip 套接字绑定到 IP 版本、IP 地址、端口号和传输协议的组合(某些操作系统可能也允许非 IP 协议的套接字,我不会在那里讨论)。这些 IP 地址是否与同一个 NIC 关联无关紧要。
所以是的,您可以将单独的套接字(来自相同或不同的应用程序)绑定到同一接口上不同地址的同一端口。这在 Web 服务器上很常见。
注意1:如果您将套接字绑定到 0.0.0.0,它将接受 ayn 本地 IPv4 地址上的连接,并且(当此套接字存在时)您将无法绑定到单个 IPv4 IP 上的端口(至少在没有额外套接字选项的情况下不能) .
注2:如果您将套接字绑定到 :: 它将接受任何本地 IPv6 地址上的连接。根据操作系统、配置和套接字选项,它还可以接受任何本地 IPv4 地址上的连接。
网络接口卡 (NIC) 由一个端口(硬件端口)组成,并与唯一的 MAC 地址绑定(在特殊情况下可以更改,例如可视化)。端口只是一个布线设备。NIC 卡中嵌入了一个端口。接口 = NIC(端口 + 其他组件)。
我们可以在一个接口上分配多个 ip 地址。只有一个主地址,绑定到该接口的其他地址是次要地址。次要 IP 地址也可以在路由协议中公布或用作网关。
“端口”一词也用于软件中,用于标识特定进程或服务类型。软件端口号可以绑定到任何可访问的 IP 地址。