为什么我们家里的 IP 都是 192.168 开头的
是的,還是我小白,什么技術(shù)博主,老情感博主了。
來(lái)講個(gè)故事。
資深老舔狗小張今天很興奮,說(shuō)什么也要請(qǐng)大家喝奶茶。
因?yàn)樗f(shuō)他感覺(jué)要跟喜歡的女生小呂修成正果了。
一問(wèn)為什么。
他耳朵都紅了,說(shuō) "我覺(jué)得小呂在暗示我了,她說(shuō)她喜歡看阿凡達(dá),正好我長(zhǎng)得就像阿凡達(dá)"。
聽(tīng)了讓人皺眉。
他繼續(xù)說(shuō):"她說(shuō)她喜歡射手座,正好我就是"
我撓撓頭:"行,別說(shuō)了,懂了。她住上海,你也住上海,你兩算是同居了"
他愣了一會(huì),看了看我:"別說(shuō)這種舔狗話,但你說(shuō)的其實(shí)有點(diǎn)道理,上次她讓我?guī)退揠娔X,我發(fā)現(xiàn)她家的 ip 是 192.168.xx.xx,巧了,我家的也是,我懷疑我們住的很近"。
很感動(dòng)。
我甚至沒(méi)敢告訴他,我家里的 IP 也是 192.168 開(kāi)頭的,我猜你家的也是,就現(xiàn)在正在看這篇文章的你。
但問(wèn)題就來(lái)了,為什么大家的 IP 都是 192.168.xx.xx?
我們今天來(lái)聊下這個(gè)話題。
IP 地址是什么
我們知道,網(wǎng)絡(luò)通訊的本質(zhì)就是收發(fā)數(shù)據(jù)包。如果說(shuō)收發(fā)數(shù)據(jù)包就跟收發(fā)快遞一樣。那 IP 地址就類似于快遞上填的收件地址和發(fā)件地址一樣,有了它,路由器就可以開(kāi)始充當(dāng)快遞員的角色,在這個(gè)紛繁復(fù)雜的網(wǎng)絡(luò)世界里找到該由誰(shuí)來(lái)接收這個(gè)數(shù)據(jù)包。
由于我們現(xiàn)在主流的還是 IPV4 地址,所以默認(rèn)以 IPV4 為例進(jìn)行講解。
這個(gè) IP 大概長(zhǎng)這樣。
在控制臺(tái)里執(zhí)行 ifconfig就能看到。inet 邊上的192.168.31.170就是 IP 地址。
$ifconfig en0:flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>mtu1500 options=400<CHANNEL_IO> ether88:36:3d:33:a0:15 inet6fe70::1009:aabf:ecc6:2d10%en0prefixlen64securedscopeid0x6 inet192.168.31.170netmask0xffffff00broadcast192.168.31.255 nd6options=201<PERFORMNUD,DAD> media:autoselect status:active
說(shuō)白了,它就是個(gè)特殊點(diǎn)的編號(hào),用于在互聯(lián)網(wǎng)中唯一定位到某臺(tái)機(jī)子。
為了表示這個(gè)編號(hào),IP 地址一共分為 4 個(gè)字節(jié),一個(gè)字節(jié) 8 位,共 32 位,能用來(lái)表示最多2 ^32,也就是42 億個(gè)地址。
貌似。。。有點(diǎn)少?
2021 年全球就有 78 億,今年更是突破了 80 億,也就是說(shuō)人均一個(gè) IP 都做不到。
為此好多年前,就在說(shuō) IPV4 地址不夠用,要耗盡了,于是才會(huì)有后來(lái)的 IPV6 地址。
IPv6 用了更多的字節(jié)數(shù),因此能表示更多的地址。大概長(zhǎng)這樣。
是不是很陌生,感覺(jué)沒(méi)怎么見(jiàn)過(guò)。
這就對(duì)了。
大家有沒(méi)有發(fā)現(xiàn),用了這么多年,大部分人其實(shí)還在用 IPV4 地址,不是說(shuō)要耗盡了嗎?
為什么大家還一直在用 IPV4?
先別急,我們?cè)倭膫€(gè)前置知識(shí)點(diǎn),IP 地址的分類。
IP 地址的分類
為了更好的管理這 42 億個(gè) IP 地址的用途。我們應(yīng)該也在教科書上看過(guò)這樣一張 IP 分類的圖。
大概的意思是 32 位地址里,開(kāi)頭為 0 的,那就是 A 類地址。開(kāi)頭為 10 的,就是 B 類,開(kāi)頭為 110 的,就是 C 類。在這之后,把剩下的字節(jié)數(shù)拆成兩段,一段表示網(wǎng)絡(luò)號(hào),另一短表示主機(jī)號(hào)。
網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的關(guān)系,就像是某個(gè)停車場(chǎng)編號(hào)和停車位號(hào)的關(guān)系。一個(gè)城市里有很多停車場(chǎng),而停車場(chǎng)里又有很多個(gè)停車位。每個(gè)停車位可以停一輛車,這里的一輛車,其實(shí)就是一臺(tái)電腦(主機(jī))。
大型停車場(chǎng)少,但是能停的車巨多,對(duì)應(yīng) A 類地址的網(wǎng)絡(luò)號(hào)少,但是主機(jī)號(hào)多。
小型停車場(chǎng)到處都是,但是一般能停的車就少,對(duì)應(yīng) C 類地址的網(wǎng)絡(luò)號(hào)多,但主機(jī)號(hào)少。
大佬們一開(kāi)始這么劃分網(wǎng)絡(luò),其實(shí)也是為了方便管理,比如 A 類地址,是給大型組織機(jī)構(gòu)用的,主機(jī)地址的位數(shù)高達(dá) 1600w+,C 類地址是給小公司用的,主機(jī)號(hào)只有 200+。
這個(gè)差距就有點(diǎn)懸殊了,放在今天就不太合理了,我開(kāi)個(gè)網(wǎng)吧可能都不止 200 臺(tái)機(jī)子對(duì)吧,用 C 類嫌主機(jī)號(hào)少,用 A 類又嫌主機(jī)號(hào)太多。因此現(xiàn)在這套分類機(jī)制其實(shí)已經(jīng)很少用了。
取而代之的是方案是,將所謂的 ABC 分類直接取消,只保留網(wǎng)絡(luò)號(hào)和主機(jī)號(hào),并且網(wǎng)絡(luò)號(hào)的位數(shù)也不像以前限制的那么死,用一個(gè)斜杠告訴用戶多少位是網(wǎng)絡(luò)號(hào),其余的都是主機(jī)號(hào)。比如172.20.61.69/20,那網(wǎng)絡(luò)號(hào)的位數(shù)就是 20 位,主機(jī)號(hào)的位數(shù)是 32-20=12 位,能放 4096 臺(tái)機(jī)子,很靈活,很夠用。
這就是,所謂的 CIDR,(Classless Inter-Domain Routing,無(wú)類別域間路由)。
IP 地址不夠用了嗎?
但不管你怎么去分類,在 32 位下的限制下,你就算玩得再花,只要將 A 類 + B 類 + C 類 + X 類加起來(lái),IP 的個(gè)數(shù)也最多還是 42 億個(gè)。還是不夠用。
那既然加法不行,那我們就用乘法。
啥意思?
42 億這個(gè)數(shù)字對(duì)大家來(lái)說(shuō)太大了,為了方便理解,我們改成 6 個(gè) IP。
假設(shè)將 6 拆成 4+2,再讓 4 乘以 2,那結(jié)果 8 肯定大于 6。
一開(kāi)始,我們理解的網(wǎng)絡(luò)世界只有一層,每人一個(gè) IP,那就只有 6 個(gè)人能上網(wǎng)。
現(xiàn)在我們將網(wǎng)絡(luò)分成兩層。像下面這樣。
每 2 個(gè)人構(gòu)成一個(gè) " 小網(wǎng)絡(luò) ",對(duì)外共用一個(gè) IP,而內(nèi)部每個(gè)人的 IP 都不一樣,4 個(gè)小網(wǎng)絡(luò)共同構(gòu)成一個(gè) " 大網(wǎng)絡(luò) "。比如小明的電腦是 1 號(hào)網(wǎng)絡(luò)下的 6 號(hào)機(jī)子,小紅的電腦是 2 號(hào)網(wǎng)絡(luò)下的 6 號(hào)機(jī)子。這樣也能做到唯一標(biāo)識(shí)某臺(tái)機(jī)子的效果。
像上面這樣,每個(gè) 2 人構(gòu)成的小網(wǎng)絡(luò),就叫做局域網(wǎng),也就是所謂的內(nèi)網(wǎng),用的 IP(上面的 5,6)也叫私有 IP 或內(nèi)網(wǎng) IP,而上面提到的 "大網(wǎng)絡(luò)",則是廣域網(wǎng),用的 IP 則被稱為公有 IP 或公網(wǎng) IP。
通過(guò)這種方式,原本只能讓 6 人上網(wǎng),現(xiàn)在卻能讓 8 人同時(shí)上網(wǎng)。這還是 IP 只有 6 個(gè)的情況下,如果讓數(shù)字變回 42 億,那就能支持遠(yuǎn)大于 42 億的機(jī)子上網(wǎng)了。
按照這樣的思路,回到上面的 ABC 類 IP 地址,大佬們也將它們分成了私有和公有兩部分。
在 rfc1918 文檔中定義了私有地址的范圍。它們不會(huì)出現(xiàn)在廣域網(wǎng)中,只會(huì)出現(xiàn)在局域網(wǎng)內(nèi)。
*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
這時(shí)候,你再看看 C 類里的私有地址范圍,眼熟不?
192.168.xx.xx 就是這網(wǎng)段內(nèi)的其中一個(gè) IP 地址。這個(gè)范圍里大概有 6w + 個(gè)主機(jī)號(hào),什么家庭條件能用得完?
于是,就變成了一條街或者一個(gè)小區(qū),又或者小區(qū)內(nèi)的幾幢樓共用一個(gè)公網(wǎng) IP,而內(nèi)部就用 192.168.xx.xx 這樣的內(nèi)網(wǎng) IP。所以只要你在家,大概率會(huì)發(fā)現(xiàn)你的 IP 地址是 C 類的 192.168.xx.xx。
但其實(shí)只要你想,A 類和 B 類的私有地址也是可以用在局域網(wǎng)里的。
你到了公司里執(zhí)行下 ifconfig 命令,你很可能會(huì)發(fā)現(xiàn)你的局域網(wǎng) IP 就不是 192.168 開(kāi)頭的了,而是 172 或者 10 開(kāi)頭的。
這是因?yàn)樵诠緝?nèi)網(wǎng)里,需要的 IP 數(shù)量會(huì)更大,172 和 10 開(kāi)頭的 IP 能表示的主機(jī)更多,比如 10 開(kāi)頭的能表示 1600w + 個(gè)。
就不說(shuō)別的,光 A 類地址,只拿了個(gè) 10 開(kāi)頭的網(wǎng)絡(luò)號(hào)出來(lái)當(dāng)內(nèi)網(wǎng) IP 就能表示 1600w + 個(gè)主機(jī)號(hào),其余的 100 + 個(gè) A 類網(wǎng)絡(luò)號(hào)都拿來(lái)當(dāng)公網(wǎng)地址。按上面提到算法去進(jìn)行個(gè)相乘,公網(wǎng) IP 數(shù) * 內(nèi)網(wǎng) IP 數(shù) = (100+ * 1600w) * 1600w,你也別管我算的對(duì)不對(duì),反正就是能提供給好多設(shè)備使用,更別說(shuō)還有 B 類和 C 類的還沒(méi)算呢。
而且上面只考慮了一層局域網(wǎng),其實(shí)局域網(wǎng)內(nèi)還能再分成多層,局域網(wǎng)內(nèi)再嵌套局域網(wǎng)。就像下面這樣,這樣能用的 IP 數(shù)量就更多了。
所以說(shuō),IP 地址雖然不多,但其實(shí)完全夠用,這也是我們一直以來(lái)遲遲不切換成 IPv6 的原因。夠用,能跑,為什么要換?
聊到這里,其實(shí)就回答了文章標(biāo)題的問(wèn)題,為什么大家的 IP 都是 192.168 開(kāi)頭的,是因?yàn)?IPv4 地址有限,為了有效利用這些有限的地址,我們可以將網(wǎng)絡(luò)分為局域網(wǎng)和廣域網(wǎng),將 IP 分為了私有 IP 和公網(wǎng) IP,一個(gè)局域網(wǎng)里的 N 多臺(tái)機(jī)器都可以共用一個(gè)廣域網(wǎng) IP,從而達(dá)到了 "做乘法" 的效果,大大增加了 "可用 IP 數(shù)量",小區(qū)里幾幢樓可以共用一個(gè)公網(wǎng) IP,且因?yàn)樵O(shè)備數(shù)量不多,一般選用 C 類的私有地址,也就是 192.168 開(kāi)頭的地址。
但問(wèn)題就來(lái)了,怎么知道我的公網(wǎng) IP 地址是什么?
查詢自己的公網(wǎng) IP 地址
在家里的電腦上,通過(guò) ifconfig,你能拿到自己的內(nèi)網(wǎng) IP 地址,比如我的就是 192.168.31.170。
$ifconfig en0:flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>mtu1500 options=400<CHANNEL_IO> ether88:36:3d:33:a0:15 inet6fe70::1009:aabf:ecc6:2d10%en0prefixlen64securedscopeid0x6 inet192.168.31.170netmask0xffffff00broadcast192.168.31.255 nd6options=201<PERFORMNUD,DAD> media:autoselect status:active
但如果你想知道你的公網(wǎng) IP 地址的話,該怎么做呢?
有個(gè)簡(jiǎn)單的方法。你直接在 baidu 上搜索 " 我的 IP 地址 ",就能看到你的公網(wǎng) IP 地址。
別去 ping 這個(gè)地址,這個(gè)圖被我 p 過(guò)。
如果你用的是某里云的機(jī)子。你也會(huì)發(fā)現(xiàn)你的機(jī)子既有私有 IP 地址,也有一個(gè)公有 IP 地址。
某里云可以同時(shí)分配公有和私有 IP
也是 p 的圖。
當(dāng)你去 ping 上面的私有地址 172.21.56.59 時(shí),你會(huì)發(fā)現(xiàn)它根本 ping 不通。
$ping172.21.56.59 PING172.21.56.59(172.21.56.59):56databytes Requesttimeoutforicmp_seq0 Requesttimeoutforicmp_seq1 Requesttimeoutforicmp_seq2 ^C ---172.21.56.59pingstatistics--- 4packetstransmitted,0packetsreceived,100.0%packetloss
而公網(wǎng)地址 46.101.121.11 卻可以 ping 通。也就是說(shuō),在你家的局域網(wǎng)里,你只能通過(guò)公網(wǎng) IP 地址去訪問(wèn)這臺(tái)云服務(wù)器。
$ping46.101.121.11 PING46.101.121.11(46.101.121.11):56databytes 64bytesfrom46.101.121.11:icmp_seq=0ttl=48time=273.481ms 64bytesfrom46.101.121.11:icmp_seq=1ttl=48time=268.018ms 64bytesfrom46.101.121.11:icmp_seq=2ttl=48time=266.606ms ^C ---46.101.121.11pingstatistics--- 3packetstransmitted,3packetsreceived,0.0%packetloss
這時(shí)候,用過(guò)他們家服務(wù)器的人可能會(huì)有個(gè)疑問(wèn)。
只要申請(qǐng)一臺(tái)云服務(wù),某里云就能給你一個(gè)公網(wǎng) IP 地址,怎么做到的?
這。。。這么富的嗎?
其實(shí),某里云跟管 IP 的機(jī)構(gòu),租用了的一批 IP 地址,在你需要的時(shí)候,就能付費(fèi)租給你,不用了也能回收分配給其他人。
而且公網(wǎng) IP 地址下面,其實(shí)也可以掛多臺(tái)云服務(wù)器,用上文提到的方式,讓多臺(tái)云服務(wù)器共用一個(gè) IP。
因此不太需要擔(dān)心 IP 耗盡的問(wèn)題。
總結(jié)
?IP 地址就像快遞里填的送件和收件地址,是一串編號(hào),用于在紛繁復(fù)雜的網(wǎng)絡(luò)世界中標(biāo)識(shí)你的位置。
?IPv4 有 32 位,最多能表示 42 億個(gè) IP 地址。為了更好的管理它們,教科書上出現(xiàn)過(guò) ABC 這樣的分類方式,并且在 ABC 類里還分為私有地址和公有地址。但目前流行使用 CIDR 的方式進(jìn)行分類。
?為了表示更多主機(jī),我們可以將網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),廣域網(wǎng)用公有地址,局域網(wǎng)使用私有地址。將公有地址乘上私有地址,就能表示遠(yuǎn)大于 42 億臺(tái)的機(jī)子。
?家庭網(wǎng)絡(luò)較小,往往小區(qū)內(nèi)幾幢樓構(gòu)成一個(gè)局域網(wǎng),這幾幢樓共用一個(gè)公有 IP 地址。局域網(wǎng)內(nèi)選擇了 C 類的私有地址,也就是 192.168.xx 開(kāi)頭的 ip,所以你會(huì)發(fā)現(xiàn)我們家里的 IP 基本上都是 192.168 開(kāi)頭的。
?在 baidu 上搜索 " 我的 IP 地址 ",就能看到你的公網(wǎng) IP 地址。
差不多了,給大家留個(gè)問(wèn)題吧
上面提到,網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),IP 分為公有和私有。一個(gè)局域網(wǎng)內(nèi)所有機(jī)子對(duì)外使用一個(gè)公有 IP,對(duì)內(nèi)則使用私有 IP。
那么問(wèn)題來(lái)了,公網(wǎng)里不使用私有 IP,一個(gè)局域網(wǎng)里的私有 IP 想訪問(wèn)局域網(wǎng)外的公有 IP,必然要做個(gè) IP 轉(zhuǎn)換,這是在哪里做的轉(zhuǎn)換呢?
最后
我在寫文章的時(shí)候,遇到個(gè)小彩蛋。
當(dāng)我在 baidu 搜索的網(wǎng)頁(yè)里,用 F12 打開(kāi)瀏覽器的控制臺(tái)時(shí)。
看到了下面這么一段話。發(fā)現(xiàn)是個(gè)招聘推廣文,想想也是,會(huì)開(kāi)控制臺(tái)看的基本上都是跟程序員沾邊的人,這波是精準(zhǔn)引流了。
招聘宣傳語(yǔ)確實(shí)寫的很好。
看完我 emo 了,當(dāng)年我畢業(yè)的時(shí)候,也想著自己有一天能靠著寫代碼改變世界。
多年以后,我發(fā)現(xiàn),能改變自己,就已經(jīng)很了不起了。
本文來(lái)自微信公眾號(hào):小白 debug (ID:xiaobaidebug),作者:小白
總結(jié)
以上是生活随笔為你收集整理的为什么我们家里的 IP 都是 192.168 开头的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hsv 明度的范围_通过HSV转换的方式
- 下一篇: 多人在线创作游戏《Roblox》有望在今