公众号旧文

为什么光猫是单一设备,上面却有两个IP?

作者:胖子阅读 —

在我的脑子里,一直有个问题:

运营商给家里安装的光猫,明明是一个单一设备。

为什么上面却能同时有两个IP?

我曾试图探索答案,结果却越查越乱。

什么端口、接口、网卡、映射,全搅一起了。

但时过境迁,我的脑子现在好像比之前灵光了一些。

那今天这篇文章,我就争取把这问题说清楚。

一、一个设备不是只能有一个 IP

估计很多人会和之前的我一样,认为一个设备上只能有一个 IP。

但实际上根本不是。

因为 IP 并不是绑定在设备上的。

而是绑定在网络接口上的。

二、那什么是网络接口?

比如你的电脑,可能同时有:

  • 有线网卡
  • Wi-Fi 无线网卡
  • WSL 虚拟网卡
  • VMware 虚拟网卡

上面每一个都可以有自己的网络接口。

所以一个设备完全可以同时拥有多个 IP。

三、光猫也是这样

现在让我们回到家里的光猫,它同时连接着两个网络。

第一侧:运营商网络

比如:

入户光纤
↓
运营商
↓
公网

这一侧,光猫会获得一个公网 IP。

例如:

123.123.123.123

这个接口属于 WAN口,也就是广域网接口。

第二侧:家里的局域网

另一边,我们的手机、电脑、电视,则都连接到光猫。

这一侧光猫通常会使用 192.168.1.1 这种局域网 IP。

这个接口属于 LAN口,也就是局域网接口。

四、所以问题的本质是什么?

本质上光猫并不是一个接口,而是两个接口。

一个接口连公网。

一个接口连局域网。

于是两个接口各自拥有自己的IP

这其实和一栋大楼同时有正门和后门特别像。

五、最容易搞混的端口

这时候肯定又会有人好奇:

那家里十几台设备同时上网。

公网不是只有一个 IP 吗,怎么区分?

于是端口就登场了。

比如:

192.168.1.100:52341

这里的 52341 就是端口。

光猫会记录这台设备的映射:

192.168.1.100:52341
↓
123.123.123.123:60001

而另一台设备则可能是:

192.168.1.101:52342
↓
123.123.123.123:60002

于是虽然公网 IP 只有一个。

但通过不同端口。

依然可以区分不同设备。

这叫 NAPT,也就是端口地址转换。

现在家庭网络里最常见的 NAT,基本都是它。

六、反直觉的一件事

很多人理解互联网时,都会把设备看成核心。

但实际上网络世界中真正的核心更像是接口。

因为一个设备完全可以同时拥有多个接口,同时属于多个网络。

于是同一台机器可能同时拥有十几个IP,甚至更多。