公众号旧文

你是不是也一直以为一台设备只能有一个IP?

作者:胖子阅读 —

之前我一直有一个非常根深蒂固的认知:

一台设备,只能有一个 IP 地址。

这个想法听起来很合理,甚至在日常生活中也完全成立:

  • 手机连WiFi → 手机获取到一个 IP
  • 电脑插网线 → 电脑获取到一个 IP

久而久之,我就默认了:一台设备 = 一个 IP

然而,当我买了一台 NAT 服务器,看到可以在后台为其配置多个 IPv6 地址的时候,之前那个根深蒂固的认知才第一次被打破了。

我买的那台 NAT 机器,后台显示:

图片

这不免让我产生了疑问:

如果一台设备只能有一个IP地址,那后面为什么还会写:限制 2?

其实在这之前,我已经隐约发现了,好像有哪里不对,比如:

家里的光猫 / 路由器:

  • LAN 口 → 局域网 IP(192.168.x.x)
  • WAN 口 → 公网 IP

这不就是一个设备,两个IP吗?

只不过一个局域网IP在LAN口,一个公网IP在WAN口。

于是我进一步脑补出一个模型:设备上的一个端口,对应一个 IP。

而事实上,真正的答案:IP 不是端口的属性。

准确的说法是:

IP 地址,是绑定在“网络接口(网卡)”上的,而不是端口上的。

同时还有一个关键点:一个接口,可以绑定多个 IP。

一、打破直觉的例子

在 Linux 系统里,你甚至可以这样做:

ip addr add 192.168.1.2/24 dev eth0
ip addr add 192.168.1.3/24 dev eth0
ip addr add 192.168.1.4/24 dev eth0

结果就是:

eth0:
  192.168.1.2
  192.168.1.3
  192.168.1.4

也就是说:同一个网卡,可以同时拥有多个 IP 地址

二、那数据不会乱吗?

不会,因为网络通信靠的是“四元组”来区分:

  • 源 IP
  • 源端口
  • 目标 IP
  • 目标端口

只要这四个值不同,操作系统就能精确区分每一条连接。

三、回到现实:你的电脑从一开始就不止一个 IP

哪怕你什么都没折腾,一台普通电脑通常也有:

  • 127.0.0.1(本地回环)
  • 192.168.x.x(内网地址)

四、那为什么我们一直都觉得“一个设备一个 IP”?

答案很现实:因为 IPv4 不够用。

IPv4 总共只有大约 43 亿个地址,早就分完了。

于是就有了 NAT(网络地址转换):

  • 家里所有设备 → 共用一个公网 IP
  • 内部再用 192.168.x.x 区分

这让我们产生了错觉:一个设备只有一个 IP

五、IPv6:把真相还原了

到了 IPv6 时代,地址数量变成:2^128(几乎无限)

于是:

  • 不再需要 NAT
  • 每台设备可以直接拥有公网 IP
  • 甚至可以拥有多个

我那台 NAT 服务器,就是这样:

eth0:
  2604:xxxx::300a
  2604:xxxx::300b

一个网卡,两个公网 IP,同时在线。

六、一个更直观的类比

如果一定要类比:

  • ❌ 不是“双卡双待”(主副卡)
  • ✅ 更像“应用双开 / 多账号”

也就是说:一台设备,可以同时拥有多个“网络身份”

每个 IP,都可以独立对外通信。

七、认知升级总结

可以把我对此事的理解分成三个阶段:

1️⃣ 一个设备一个 IP(直觉认知) 2️⃣ 一个端口一个 IP(进阶认知) 3️⃣ 一个接口多个 IP(真实世界)

一句话总结

IP 不是设备的唯一标识,而是设备可以拥有的多个网络身份。

我们过去那根深蒂固的认知,只是被 IPv4 和 NAT 简化过的世界。