是的,還是小白,什么術(shù)博主,老感博主了。講個故事。深老舔狗小今天很興奮說什么也要大家喝奶茶因?yàn)樗f他覺要跟喜歡女生小呂修正果了。一為什么。他朵都紅了, "我覺得小呂在暗橐山我,她說她喜看阿凡達(dá),好我長得就阿凡達(dá)"。聽了讓人皺眉他繼續(xù)說:"她說她喜歡手座,正好就是"我撓撓頭:"行,別說了,懂了她住上海,也住上海,兩算是同居"他愣了一會,看了看我"別說這種舔狗話,孝經(jīng)你的其實(shí)有點(diǎn)理,上次她我?guī)退揠?,我發(fā)現(xiàn)她的 ip 是 192.168.xx.xx,巧了,我家的也是我懷疑我們的很近"。很感動。我甚沒敢告訴他我家里的 IP 也是 192.168 開頭的,我猜你家的白虎,就現(xiàn)在正看這篇文章你。但問題來了,為什大家的 IP 都是 192.168.xx.xx?我們今天來下這個話題IP 地址是什么我們知,網(wǎng)絡(luò)通訊本質(zhì)就是收數(shù)據(jù)包。如說收發(fā)數(shù)據(jù)就跟收發(fā)快一樣。那 IP 地址就類似于快遞上的收件地址發(fā)件地址一,有了它,由器就可以始充當(dāng)快遞的角色,在個紛繁復(fù)雜網(wǎng)絡(luò)世界里到該由誰來收這個數(shù)據(jù)。收發(fā)數(shù)據(jù)像收發(fā)快遞于我們現(xiàn)在流的還是 IPV4 地址,所以默認(rèn) IPV4 為例進(jìn)行講。這個 IP 大概長這樣。IPv4 地址在控制里執(zhí)行 ifconfig?就能看到inet 邊上的?192.168.31.170?就是 IP 地址。$?ifconfig??en0:?flags=8863
?mtu?1500??????options=400?????ether?88:36:3d:33:a0:15??????inet6?fe70::1009:aabf:ecc6:2d10%en0?prefixlen?64?secured?scopeid?0x6??????inet?192.168.31.170?netmask?0xffffff00?broadcast?192.168.31.255??????nd6?options=201??????media:?autoselect??????status:?active說白了,它是個特殊點(diǎn)編號,用于互聯(lián)網(wǎng)中唯定位到某臺子。為了表這個編號,IP 地址一共分為 4 個字節(jié),一個節(jié) 8 位,共 32 位,能用來表最多?2 ^32,也就是?42 億個地址。貌似。。有點(diǎn)少2021 年全球就有 78 億,今年更是突破了 80 億,也就是說人均個 IP 都做不到。當(dāng)全球人口數(shù)此好多年前就在說 IPV4 地址不夠用,要耗了,于是才有后來的 IPV6 地址。IPv6 用了更多的節(jié)數(shù),因此表示更多的址。大概長樣。IPv6 地址是不是很陌生噓感沒怎么見過這就對了。家有沒有發(fā),用了這么年,大部分其實(shí)還在用 IPV4 地址,不是說耗盡了嗎?什么大家還直在用 IPV4?先別急,我們再聊前置知識點(diǎn)IP 地址的分類。IP 地址的分類了更好的管這 42 億個 IP 地址的用途。們應(yīng)該也在科書上看過樣一張 IP 分類的圖。IP 地址的分類大概的思是 32 位地址里,頭為 0 的,那就是 A 類地址。開頭為 10 的,就是 B 類,開頭為 110 的,就是 C 類。在這之,把剩下的節(jié)數(shù)拆成兩,一段表示絡(luò)號,另一表示主機(jī)號網(wǎng)絡(luò)號和主號的關(guān)系,像是某個停場編號和停位號的關(guān)系一個城市里很多停車場而停車場里有很多個停位。每個停位可以停一車,這里的輛車,其實(shí)是一臺電腦主機(jī))。大停車場少,是能停的車多,對應(yīng) A 類地址的網(wǎng)絡(luò)牡山少,但主機(jī)號多。型停車場到都是,但是般能停的車少,對應(yīng) C 類地址的網(wǎng)絡(luò)號多,鶌鶋機(jī)號少。大們一開始這劃分網(wǎng)絡(luò),實(shí)也是為了便管理,比 A 類地址,是給大型織機(jī)構(gòu)用的主機(jī)地址的數(shù)高達(dá) 1600w+,C 類地址是給小公司用的主機(jī)號只有 200+。這個差距就有懸殊了,放今天就不太理了,我開網(wǎng)吧可能都止 200 臺機(jī)子對吧用 C 類嫌主機(jī)號少剛山 A 類又嫌主機(jī)號太多因此現(xiàn)在這分類機(jī)制其已經(jīng)很少用。取而代之是方案是,所謂的 ABC 分類直接取消,只保網(wǎng)絡(luò)號和主號,并且網(wǎng)號的位數(shù)也像以前限制那么死,用個斜杠告訴戶多少位是絡(luò)號,其余都是主機(jī)號比如?172.20.61.69/20,那網(wǎng)絡(luò)號位數(shù)就是 20 位,主機(jī)號的位榖山是 32-20=12 位,能放 4096 臺機(jī)子,很靈世本,很夠。1668126898773這就是,所謂的 CIDR,(Classless Inter-Domain Routing,無類別域間路)。IP 地址不夠用了?但不管你么去分類, 32 位下的限制下,就算玩得再,只要將 A 類 + B 類 + C 類 + X 類加起來,IP 的個數(shù)也最多還是 42 億個。還是不夠用那既然加法行,那我們用乘法。啥思?42 億這個數(shù)字對家來說太大,為了方便解,我們改 6 個 IP。假設(shè)將 6 拆成 4+2,再讓 4 乘以 2,那結(jié)果 8 肯定大于 6。一開始,我們理解的絡(luò)世界只有層,每人一 IP,那就只有 6 個人能上網(wǎng)。加只能讓 6 人上網(wǎng)現(xiàn)在我們將網(wǎng)絡(luò)成兩層。像面這樣。相能讓 8 人上網(wǎng)每 2 個人構(gòu)成一 " 小網(wǎng)絡(luò) ",對外共用一欽山 IP,而內(nèi)部每人的 IP 都不一樣,4 個小網(wǎng)絡(luò)共同構(gòu)鹿蜀一個 " 大網(wǎng)絡(luò) "。比如小明的電腦是 1 號網(wǎng)絡(luò)下的 6 號機(jī)子,小紅的電是 2 號網(wǎng)絡(luò)下的 6 號機(jī)子。這也能做到唯標(biāo)識某臺機(jī)的效果。像面這樣,每 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。通過這種方式南山原本能讓 6 人上網(wǎng),現(xiàn)在能讓 8 人同時(shí)上網(wǎng)。還是 IP 只有 6 個的情況下,果讓數(shù)字變 42 億,那就能支持大于 42 億的機(jī)子上了。公有和有 IP 的概念按照這的思路,回上面的 ABC 類 IP 地址,大佬們也將它們成了私有和有兩部分。 rfc1918 文檔中定義了私歷山址的范圍。們不會出現(xiàn)廣域網(wǎng)中,會出現(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)的其中一 IP 地址。這個范圍大概有 6w + 個主機(jī)號,什么家條件能用得?于是,就成了一條街者一個小區(qū)又或者小區(qū)的幾幢樓共一個公網(wǎng) IP,而內(nèi)部就用 192.168.xx.xx 這樣的內(nèi)網(wǎng) IP。所以只要在家,大概會發(fā)現(xiàn)你的 IP 地址是 C 類的 192.168.xx.xx。幾幢樓共用一個公網(wǎng) IP但其實(shí)只要你想,A 類和 B 類的私有地址是可以用在域網(wǎng)里的。到了公司里行下 ifconfig 命令,你很能會發(fā)現(xiàn)你局域網(wǎng) IP 就不是 192.168 開頭的了,而是 172 或者 10 開頭的。這是肥蜰為在公內(nèi)網(wǎng)里,需的 IP 數(shù)量會更大,172 和 10 開頭的 IP 能表示的主機(jī)更多比如 10 開頭的能表 1600w + 個。就不說別的, A 類地址,只拿了旋龜 10 開頭的網(wǎng)絡(luò)號出來內(nèi)網(wǎng) IP 就能表示 1600w + 個主機(jī)號,其余的 100 + 個 A 類網(wǎng)絡(luò)號都拿少鵹當(dāng)公地址。按上提到算法去行個相乘,網(wǎng) IP 數(shù) * 內(nèi)網(wǎng) IP 數(shù) = (100+ * 1600w) * 1600w,你也別管我的對不對,正就是能提給好多設(shè)備用,更別說有 B 類和 C 類的還沒算呢白鳥而上面只考慮一層局域網(wǎng)其實(shí)局域網(wǎng)還能再分成層,局域網(wǎng)再嵌套局域。就像下面樣,這樣能的 IP 數(shù)量就更多了局域網(wǎng)內(nèi)還局域網(wǎng)所以,IP 地址雖然不多,其實(shí)完全夠,這也是我一直以來遲不切換成 IPv6 的原因。夠用,跑,為什么換?聊到這,其實(shí)就回了文章標(biāo)題問題,為什大家的 IP 都是 192.168 開頭的,是為 IPv4 地址有限,為了有效孟子這些有限的址,我們可將網(wǎng)絡(luò)分為域網(wǎng)和廣域,將 IP 分為了私有 IP 和公網(wǎng) IP,一個局域網(wǎng)里的 N 多臺機(jī)器都可以共杳山個廣域網(wǎng) IP,從而達(dá)到了 "做乘法" 的效果,大大增加危 "可用 IP 數(shù)量",小區(qū)里幾幢樓以共用一個網(wǎng) IP,且因?yàn)樵O(shè)備數(shù)不多,一般用 C 類的私有地址,就是 192.168 開頭的地址。問題就來了怎么知道我公網(wǎng) IP 地址是什么查詢自己的網(wǎng) IP 地址在家里的腦上,通過 ifconfig,你能拿到自己的內(nèi) IP 地址,比如我擁有是 192.168.31.170。$?ifconfig??en0:?flags=8863?mtu?1500??????options=400??????ether?88:36:3d:33:a0:15??????inet6?fe70::1009:aabf:ecc6:2d10%en0?prefixlen?64?secured?scopeid?0x6??????inet?192.168.31.170?netmask?0xffffff00?broadcast?192.168.31.255?????nd6?options=201??????media:?autoselect?????status:?active但如果你想知道你的網(wǎng) IP 地址的話,該么做呢?有簡單的方法你直接在 baidu 上搜索 " 我的 IP 地址 ",就能看到你的鵸余 IP 地址。別去 ping 這個地址,這長乘圖我 p 過。如果你用的某里云的機(jī)。你也會發(fā)你的機(jī)子既私有 IP 地址,也有個公有 IP 地址。某里云可以同帝江配公有和私 IP也是 p 的圖。當(dāng)你去 ping 上面的私有地址 172.21.56.59 時(shí),你會發(fā)現(xiàn)根本 ping 不通。$?ping?172.21.56.59??PING?172.21.56.59?(172.21.56.59):?56?data?bytes??Request?timeout?for?icmp_seq?0??Request?timeout?for?icmp_seq?1??Request?timeout?for?icmp_seq?2??^C??---?172.21.56.59?ping?statistics?---??4?packets?transmitted,?0?packets?received,?100.0%?packet?loss而公網(wǎng)地址 46.101.121.11 卻可以 ping 通。也就是說,在家的局域網(wǎng),你只能通公網(wǎng) IP 地址去訪問臺云服務(wù)器$?ping?46.101.121.11??PING?46.101.121.11?(46.101.121.11):?56?data?bytes??64?bytes?from?46.101.121.11:?icmp_seq=0?ttl=48?time=273.481?ms??64?bytes?from?46.101.121.11:?icmp_seq=1?ttl=48?time=268.018?ms??64?bytes?from?46.101.121.11:?icmp_seq=2?ttl=48?time=266.606?ms??^C??---?46.101.121.11?ping?statistics?---??3?packets?transmitted,?3?packets?received,?0.0%?packet?loss這時(shí)候,用過他們鬲山服器的人可能有個疑問。要申請一臺服務(wù),某里就能給你一公網(wǎng) IP 地址,怎么到的?這。。這么富的?其實(shí),某云跟管 IP 的機(jī)構(gòu),租用聞獜的一批 IP 地址,在你需三身的候,就能付租給你,不了也能回收配給其他人而且公網(wǎng) IP 地址下面,其實(shí)也可掛多臺云服器,用上文到的方式,多臺云服務(wù)共用一個 IP。因此不太需要帝俊心 IP 耗盡的問題。總結(jié)岳山IP 地址就像快遞里填的件和收件地,是一串編,用于在紛復(fù)雜的網(wǎng)絡(luò)界中標(biāo)識你位置。?IPv4 有 32 位,最多能表示 42 億個 IP 地址。為了更好幽鴳管理們,教科書出現(xiàn)過 ABC 這樣的分類方式鈐山并在 ABC 類里還分為有地址和公地址。但目流行使用 CIDR 的方式進(jìn)行分反經(jīng)??為了表更多主機(jī),們可以將網(wǎng)分為廣域網(wǎng)局域網(wǎng),廣網(wǎng)用公有地,局域網(wǎng)使私有地址。公有地址乘私有地址,能表示遠(yuǎn)大 42 億臺的機(jī)子。?家庭網(wǎng)絡(luò)較,往往小區(qū)幾幢樓構(gòu)成個局域網(wǎng),幾幢樓共用個公有 IP 地址。局域網(wǎng)內(nèi)選擇了 C 類的私有地址,也就 192.168.xx 開頭的 ip,所以你會現(xiàn)我們家里 IP 基本上都是 192.168 開頭的。?在 baidu 上搜索 " 我的 IP 地址 ",就能看到的公網(wǎng) IP 地址。差不多青鳥,給大留個問題吧面提到,網(wǎng)分為廣域網(wǎng)局域網(wǎng),IP 分為公有和私巫謝。一個域網(wǎng)內(nèi)所有子對外使用個公有 IP,對內(nèi)則使私有 IP。那么問題來,公網(wǎng)里不用私有 IP,一個局域里的私有 IP 想訪問局域網(wǎng)外的公 IP,必然要做個 IP 轉(zhuǎn)換,這是在哪里做的換呢?私有 IP 和公有 IP 在哪進(jìn)行轉(zhuǎn)換繡山我在寫文章時(shí)候,遇到小彩蛋。當(dāng)在 baidu 搜索的網(wǎng)頁里,用 F12 打開瀏覽器的控制時(shí)??吹搅?面這么一段。發(fā)現(xiàn)是個聘推廣文,想也是,會控制臺看的本上都是跟序員沾邊的,這波是精引流了。招宣傳語確實(shí)的很好???我 emo 了,當(dāng)年我業(yè)的時(shí)候,想著自己有天能靠著寫碼改變世界多年以后,發(fā)現(xiàn),能改自己,就已很了不起了本文來自微公眾號:小 debug (ID:xiaobaidebug),作者:小