【问题标题】:What does the 'primary address' mean about the interface [closed]接口的“主地址”是什么意思[关闭]
【发布时间】:2025-12-22 18:05:07
【问题描述】:

接口的主地址是什么意思?在我看来,一个接口只有一个地址。是这样吗?

【问题讨论】:

    标签: linux sockets udp


    【解决方案1】:

    不,您可以为接口分配额外的“辅助”或“别名”地址。 例如,这个接口有 3 个地址。主要是“127.0.0.1”。

    # ifconfig lo0
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33648
            inet 127.0.0.1 netmask 0xff000000
            inet alias 192.168.1.200 netmask 0xffffffff
            inet alias 192.168.140.200 netmask 0xffffffff
    

    这意味着该接口可以接受发往所有这三个地址的数据包。它也可以使用所有这三个地址作为源地址发送,但正如 Unix 网络编程 所说,您需要专门绑定到辅助地址,因为默认情况下它将使用主地址。

    您为什么要这样做?一些原因是:

    • 您正在更改计算机的 IP 地址并希望在以下位置接受流量 旧地址一段时间(比如等待 DNS 更改 传播)。
    • 您正在使用anycasting 或其他高可用性技术,其中每个 机器有自己的地址,那里有一个“服务地址”,可以 在机器之间移动。
    • 您的机器正在充当路由设备。

    【讨论】: