为什么我们家的IP都是192.168开头的?我们知道IP地址是什么。网络通信的本质是发送和接收数据包。如果收发数据包和收发快递是一样的。IP地址类似于快递填写的收件地址和发件地址。有了它,路由器就可以开始充当快递员的角色,在这个纷繁复杂的网络世界中找出应该由谁来接收数据包。.由于我们目前主流的还是IPV4地址,所以默认以IPV4为例进行说明。这个IP看起来像这样。在控制台执行ifconfig就可以看到。inet旁边的192.168.31.170是IP地址。$ifconfigen0:flags=8863mtu1500options=400ether88:36:3d:33:a0:15inet6fe70::1009:aabf:ecc6:2d10%en0prefixlen64securedscopeid0x6inet192.168.31.170netmask0xffffff00broadcast192.168.31.255nd6options=201media:autoselectstatus:activelocateamachine.为了表示这个数字,IP地址被分成4个字节,每个字节8位,一共32位,最多可以表示2^32,即42亿个地址。似乎。..少一点?2021年全球78亿,今年超过80亿,意味着人均IP达不到。为此,很多年前就说IPV4地址不够用了,所以才会有后来的IPV6地址。IPv6使用更多字节,因此可以表示更多地址。看起来像这样。是不是很奇怪,感觉好像没见过一样。现在是对的。有没有发现,用了这么多年,大部分人还在用IPV4地址,是不是快累死了?你为什么还在用IPV4?别着急,先说前置知识点,IP地址的分类。IP地址的分类是为了更好地管理这42亿个IP地址的使用情况。我们应该在教科书上看到过这样一张IP分类图。大概意思是在32位地址中,以0开头的是A类地址。10开头的是B类,110开头的是C类。之后把剩下的字节分成两段,一段是网络号,一段是主机号。网络号和主机号之间的关系就像停车场号和停车位号之间的关系。一个城市有很多停车场,停车场也有很多停车位。每个车位都可以停一辆车,这里的车其实就是一台电脑(主机)。大型停车场很少,但可以停很多车。A类地址对应的网络号很少,但主机号很多。小停车场随处可见,但一般能停的车很少。C类地址对应的网络号很多,但主机号很少。当初老板们这样划分网络,其实也是为了方便管理。例如A类地址被大型机构使用,主机地址的位数高达1600w+。C类地址是小公司用的,主机数只有200+。这个差距有点大,放在今天说不通。如果我开个网吧,可能有200多台机器吧?如果你用C类,你会觉得主机号太少,如果你用A类,你会觉得主机号太多。所以这种分类机制其实现在已经很少用了。而是直接取消所谓的ABC分类,只保留网络号和主机号,网络号的位数不像以前那样有限制。用斜杠告诉用户网络号是多少位,剩下的是主机号。比如172.20.61.69/20,网络号的位数是20位,主机号的位数是32-20=12位,可以容纳4096台机器,非常灵活充足。这就是所谓的CIDR(ClasslessInter-DomainRouting,无类域间路由)。IP地址不够?但是不管怎么分类,在32位的限制下,即使你玩的时间再多,只要把A类+B类+C类+X类加起来,IP个数最多还是4.2个十亿。还是不够。由于加法不起作用,我们使用乘法。你是什??么意思?42亿这个数字对每个人来说都太大了。为了便于理解,我们改成了6个IP。假设6除以4+2,然后4乘以2,那么8的结果肯定大于6。一开始,我们所了解的网络世界只有一层,每个人都有一个IP,所以只有6个人可以上网。现在我们将网络分为两层。像下面。每2个人组成一个“小网络”,对外共享一个IP,但内部每个人的IP都不一样,4个小网络共同组成一个“大网络”。比如小明的电脑是1号网下的6号机,小红的电脑是2号网下的6号机。这样也可以达到唯一标识某台机器的效果。如上,每个2人组成的小网络称为一个局域网,也就是所谓的内网,所使用的IP(上面5、6)也称为私有IP或内网IP,“大网络”上面提到的“网络”是广域网,使用的IP称为公网IP或公网IP。这样一来,原本只能6个人上网,现在可以同时上网8个人了。这还是只有6个IP的情况。如果把数字改回42亿,就能支持远大于42亿的机器上线。按照这个思路,回到上面的ABC类IP地址,大佬们也把它们分为了private和public部分。私有地址的范围在rfc1918文档中定义。它们不出现在广域网中,只出现在局域网中。*A类地址:10.0.0.0--10.255.255.255*B类地址:172.16.0.0--172.31.255.255*C类地址:192.168.0.0--192.168.255.255这时候可以看C类私有地址范围看起来很眼熟吗?192.168.xx.xx是该网段的IP地址之一。这个范围大概有60000+主机号,什么家庭条件可以用完?结果就变成了街道或者小区,或者小区里的几栋楼共用一个公网IP,内部使用192.168.xx.xx等内网IP。所以只要你在家,大概率你的IP地址是C类的192.168.xx.xx。但其实只要你想,A类和B类的私有地址也可以在局域网中使用。当你去公司执行ifconfig命令时,你可能会发现你的局域网IP不是192.168开头的,而是172或者10开头的,这是因为在公司内网中,需要的IP数量会比较多。以172和10开头的IP可以代表更多的主机。比如10开头的IP可以代表1600w+台主机。别的不说,就一个A类地址,只用一个10开头的网络号作为内网IP代表1600w+个主机号,剩下的100+个A类网络号作为公网地址。按照上面说的算法相乘,公网IP数*内网IP数=(100+*1600w)*1600w,不用担心我的计算,反正很多设备都可以用,让单独不算还有B类和C类。而且,上面只考虑了一层LAN。事实上,局域网可以分为多层,局域网可以嵌套在局域网中。就像下面这样,可以使用的IP数量就更多了。因此,虽然IP地址不多,但实际上已经足够了,这也是我们一直在推迟切换到IPv6的原因。够用了,还能跑,为什么要改?说到这里,其实是回答了文章标题中的问题。为什么大家的IP都是192.168开头的,是因为IPv4地址有限。为了有效地利用这些有限的地址,我们可以将网络分为局域网和广域网,将IP分为私有IP和公网IP,一个局域网内N台以上的机器可以共享一个WANIP,从而达到“倍增”,大大增加了“可用IP数”,小区内几栋楼可以共用一个公网IP,而且由于设备不多,一般选择C类私有地址,即192.168开头的地址。但是问题来了,我怎么知道我的公网IP地址是多少?查询自己的公网IP地址在家里的电脑上,可以通过ifconfig获取自己的内网IP地址,比如我的是192.168.31.170。$ifconfigen0:flags=8863mtu1500options=400ether88:36:3d:33:a0:15inet6fe70::1009:aabf:ecc6:2d10%en0prefixlen64securedscopeid0x6inet192.168.31.170netmask0xffffff00broadcast192.168.31.255nd6options=201media:autoselectstatus:active但是如果你想知道你的公共IP地址?有一个简单的方法。可以直接在百度上搜索“我的IP地址”,就可以看到你的公网IP地址。不要ping这个地址,这张图已经被我p过了。如果你用的是某台云机。您还会发现您的机器同时具有私有IP地址和公共IP地址。也是p的图。当你去ping上面的私有地址172.21.56.59时,你会发现根本ping不通。$ping172.21.56.59PING172.21.56.59(172.21.56.59):56数据字节icmp_seq请求超时0icmp_seq请求超时1icmp_seq请求超时2^C---172.21.56.59ping统计数据包---40数据包收到,100.0%丢包,但是可以ping通公网地址46.101.121.11。也就是说,在你的家庭局域网中,你只能通过公网IP访问这台云服务器。$ping46.101.121.11PING46.101.121.11(46.101.121.11):56个数据字节64个字节来自46.101.121.11:icmp_seq=0ttl=48time=273.481ms64个字节来自46.101.121tmpl=48time:18tmpl=48bytesms64bytesfrom46.101.121.11:icmp_seq=2ttl=48time=266.606ms^C---46.101.121.11pingstatistics---发送了3个数据包,接收了3个数据包,0.0%的数据包丢失这时候,用过的人在家庭服务器上可能有问题。只要你申请了一个云服务,某云就可以给你一个公网IP地址,怎么做呢?这。..这么有钱?事实上,某丽云和IP管理机构租用了一批IP地址。当你需要的时候,你可以付费租给你,不用的时候你可以回收再分发给他人。而在公网IP地址下,其实可以挂多台云服务器,用上面说的方法让多台云服务器共享一个IP。因此,几乎无需担心IP耗尽。小结IP地址就像快递单上填写的发件人地址和收件人地址。它是一串数字,用于在复杂的网络世界中识别您的位置。IPv4有32位,最多可以表示42亿个IP地址。为了更好的管理它们,教材上出现了ABC分类方法,在ABC类中,也分为私有地址和公共地址。不过目前流行的是使用CIDR的方式进行分类。为了代表更多的主机,我们可以将网络分为广域网和局域网。公共地址用于广域网,私有地址用于局域网。将公共地址乘以私有地址可以代表远远超过42亿台机器。家庭网络规模小,小区内往往有几栋楼组成一个局域网,这些楼共享一个公网IP地址。局域网中选择的是C类私有地址,即192.168.xx开头的ip,所以你会发现我们家里的IP基本都是192.168开头的。在百度上搜索“我的IP地址”,就可以看到你的公网IP地址。差不多了,让我留个问题给你。上面说过,网络分为广域网和局域网,IP又分为公有和私有。局域网中的所有机器对外使用公网IP,对内使用私有IP。那么问题来了。私有IP不在公共网络中使用。如果局域网内的私有IP要访问局域网外的公网IP,就必须进行IP转换。转换在哪里完成?终于在写文章的时候遇到了一个小彩蛋。当我在百度搜索到的网页中F12打开浏览器的控制台时。我看到了下面这段话。我发现这是一篇招聘宣传文章。想了想,能打开控制台看的基本都是跟程序员有关系的人。这一波精准引流。招聘标语写的真好。看完我的emo,毕业的时候,我也想过有一天我可以通过写代码来改变世界。多年以后,我发现能够改变自己,已经很了不起了。..