公众号旧文
为什么光猫是单一设备,上面却有两个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,甚至更多。