你真的了解127.0.0.1和0.0.0.0嗎~

事出有因趣席,前段時間老大讓小姐姐在測試環(huán)境搭建一個ELK汰规。我說我搭好了谬俄,但Kibana端口不知為啥沒暴露出去柏靶,其他機子訪問不了我的Kibana但確可以ping通這臺機子...一個小伙伴馬上用netstat命令確定到我把Kibana IP綁到127.0.0.1上了,然后我就收到了組內一堆 “ ..... ” 的回復。溃论。

幸好阿姨帶著口罩上班屎蜓,不然他們可能看到我沒洗的小紅臉(??。钥勋。嗯炬转,做人就是要臉皮厚)。笔诵。

在了解127.0.0.1和0.0.0.0是啥之前(因為這個問題實在太常識了)返吻,我們先看一下為啥會有IP。乎婿。

網(wǎng)絡傳輸需要解決的主要問題有兩個: 發(fā)給誰通過怎么樣的路線才能發(fā)給他(也就是路由)

我們先來看一下TCP/IP封裝的數(shù)據(jù)包結構:


當我們發(fā)送數(shù)據(jù)時街佑,按照應用層 —>數(shù)據(jù)鏈路層自上而下封裝數(shù)據(jù)包谢翎。當我們接收數(shù)據(jù)時,按照數(shù)據(jù)鏈路層 —>應用層 進行拆包沐旨。這里我們再來看一下數(shù)據(jù)鏈路層以太網(wǎng)幀的結構:

每個網(wǎng)卡在出廠時就會有一個全世界唯一的MAC地址森逮,就相當于是我們每個人在世界上都是唯一的。那MAC地址其實就能解決第一個 發(fā)給誰 的問題磁携。那為啥還需要IP層呢褒侧?

想象你到世界上找一個叫Monica2333的人,你不可能大街上隨便逮到一個人就問你認識Monica2333嗎..(當然如果你真這么干了,請關注公眾號 碼農(nóng)知識點闷供,小姐姐在這里等你~)
你應該先搞清楚 Monica2333住址是在哪個國家哪個城市哪個區(qū)哪個街道烟央,從國家-》城市-》區(qū)-》小區(qū)一步步定位,這么找人就符合常理了歪脏。疑俭。IP解決的就是網(wǎng)絡上數(shù)據(jù)包的路由定位困難問題

IP怎么表達出“國家城市區(qū)”的概念呢婿失,這就是IP地址定義的事了钞艇。

IP 地址用32位來表示,通常被分割為4個“8位”豪硅。以“點分十進制”表示成 [a.b.c.d] 的形式哩照。同時這32bit又被劃分為網(wǎng)絡號主機號組成。比如10.100.122.2/24 這個IP: 10.100.122.2是“點分十進制”表示形式懒浮,/24 表示的是前24位是網(wǎng)絡號葡秒,后8位是主機號。這個網(wǎng)絡號其實充當?shù)木褪?code>“國家城市區(qū)”的概念嵌溢。比如我們只需要記住怎么去往10.100.122.x眯牧,就知道怎么去找10.100.122.1/24和10.100.122.2/24了。為了方便獲取網(wǎng)絡號 赖草,又出現(xiàn)一個子網(wǎng)掩碼的概念学少。子網(wǎng)掩碼就是網(wǎng)絡號位上全為1,主機號全為0的IP地址秧骑。這樣當
IP&子網(wǎng)掩碼得到的就是IP的網(wǎng)絡號版确。所以10.100.122.2/24的子網(wǎng)掩碼就是255.255.255.0

好了乎折,我們來看一下IPv4對IP地址的劃分:


其中A/B/C類可用于表示公網(wǎng)IP绒疗。D類用于多播組號,使用這一類地址骂澄,屬于某個組(相同網(wǎng)絡號的)的機器都能收到吓蘑,E類還留待使用。但是我們并不用記住公網(wǎng)IP是屬于A/B/C類中哪一類坟冲,我們只需要用/24或/16這樣的CIDR方式去區(qū)分IP的網(wǎng)絡號和主機號就可以磨镶。

實際上,A/B/C類劃分的IP顯然是不夠用每個地球人用的健提,我們日常在接入公網(wǎng)時琳猫,都需要走能有公網(wǎng)IP的網(wǎng)關。在整個公網(wǎng)內部私痹,再分配私有IP地址給每個人上網(wǎng)使用就可以了脐嫂。比如家庭常用的192.168.0.x/24 私有IP網(wǎng)段统刮。

此外,在這五類IP地址基礎上還劃分出了特殊的IP網(wǎng)段账千。

我看心情選了一部分侥蒙。小伙伴也發(fā)現(xiàn)了,127.0.0.1和0.0.0.0終于出現(xiàn)了蕊爵,但我們現(xiàn)在先不講他們倆辉哥。我們再回到開始的第二個問題: 通過怎么樣的路線才能發(fā)給他

IP路由

上面我們說了IP的目的就是將路由簡單化攒射,IP的網(wǎng)絡號承擔了"一組IP
的路由"出入口的作用醋旦。實際上網(wǎng)關就是這個出入口。不同局域網(wǎng)(IP網(wǎng)絡號不同)的網(wǎng)絡通信必須經(jīng)過網(wǎng)關会放,相同局域網(wǎng)的網(wǎng)絡通信可以靠廣播和MAC地址來送達目標機器(也就是二層協(xié)議行的通)饲齐。

好了,假使我們從203.16.20.5/24 —> 203.16.24.4/24 發(fā)一個包咧最,其中源IP和目標IP都是公網(wǎng)IP捂人。那包的路由過程如下:

源機器網(wǎng)絡程序在封裝數(shù)據(jù)包的過程中發(fā)現(xiàn)目標機器和自己的IP不在同一局域網(wǎng)內,則需要通過網(wǎng)關將包從網(wǎng)卡發(fā)出去矢沿。1處的數(shù)據(jù)包結構為:

到了網(wǎng)關1滥搭,拆包發(fā)現(xiàn)目標IP地址是 203.16.24.4/24。查了下自己的路由表捣鲸,發(fā)現(xiàn)要想訪問 203.16.24.4/24瑟匆,要從 203.16.22.2/24 這個口出去,下一跳為 203.16.22.4/24栽惶。此時2處的數(shù)據(jù)包結構為:

到了網(wǎng)關2愁溜,拆包發(fā)現(xiàn)目標IP地址是 203.16.24.4/24。查了下自己的路由表外厂,發(fā)現(xiàn)要想訪問 203.16.24.4/24冕象,要從 203.16.24.1/24 這個口出去。此時3處的數(shù)據(jù)包結構為:

到了目標機器汁蝶,拆包發(fā)現(xiàn)目標IP地址就是自己呀渐扮,所以進行更上層的拆包,把數(shù)據(jù)收進來就可以了穿仪。

我們可以發(fā)現(xiàn)這種方式的路由每經(jīng)過一次局域網(wǎng)席爽,MAC地址需要改變,但IP地址不需要改變啊片。這種網(wǎng)關稱為轉發(fā)網(wǎng)關。而實際上還存在一種改變 IP 地址的網(wǎng)關玖像,稱為NAT 網(wǎng)關紫谷。我們就不展開了齐饮,小伙伴可以自行搜索。

現(xiàn)在我們知道IP/MAC地址/網(wǎng)關等怎么解決上述兩個 發(fā)給誰 和 通過怎么樣的路線才能發(fā)給目標機器 的問題了(當然還有路由策略等內容沒有展開笤昨,我們這里只討論如果有路由路線祖驱,咋發(fā)的問題)。但特么127.0.0.1和0.0.0.0到底有啥特殊的啊瞒窒。捺僻。。

127.0.0.1 & 0.0.0.0

終于要切入正題了崇裁。匕坯。

127.0.0.1
從上面 特殊的IP網(wǎng)段中我們可以知道127.0.0.1表示的是回環(huán)IP地址(loopback address)。啥意思呢拔稳?所有發(fā)往目標IP為127.0.0.1的數(shù)據(jù)包都不會通過網(wǎng)卡發(fā)送到網(wǎng)絡上葛峻,而是在數(shù)據(jù)離開網(wǎng)絡層時將其回送給本機的有關進程。

形象些說就是因為發(fā)送數(shù)據(jù)包是從應用層 —>數(shù)據(jù)鏈路層自上而下一層層按照程序封裝的巴比,當?shù)搅司W(wǎng)絡層時术奖,發(fā)現(xiàn)目標IP是127.0.0.1,就不會仔往下封裝數(shù)據(jù)鏈路層了轻绞,而是把包又丟給需要往上層解析的隊列中了采记。


實際上localhost通常也代表127.0.0.1。這是因為通常在本機Hosts文件會把localhost映射為127.0.0.1 政勃。此外以127開頭的IP地址都是回環(huán)地址唧龄,只是我們通常使用127.0.0.1。所以這只能在本機來回收發(fā)包的地址有啥用呢稼病?本機測試用Q∏取!

0.0.0.0

0.0.0.0這個IP地址指的是沒有路由的元地址然走,通常被用來表示無效的援制,未知的 或是 沒有指定目標IP的地址∩秩穑看不懂沒關系晨仑,它其實相當于Java中的this,真表示啥要放到實際所處環(huán)境中去考慮拆檬。用處主要有:

  • 本機所有IP
    當考慮它在一臺服務器中的作用時洪己,它指代的就是這臺機器上所有的IP。假如一臺機器上有兩個IP:203.16.20.5/24 和 203.16.24.4/24竟贯。如果我們把一個Java應用的IP綁定到了0.0.0.0:8080答捕,那訪問203.16.20.5:8080 和 203.16.24.4:8080都可以與這個Java應用建立連接。

  • 默認路由

上面講IP路由的時候我們提到了路由表屑那。路由表就是一個記錄數(shù)據(jù)包下一跳應該去哪的路由規(guī)則拱镐。每一條規(guī)則至少包含三項信息:

網(wǎng)絡ID:就是目標地址的網(wǎng)絡ID艘款。
子網(wǎng)掩碼:用來判斷IP所屬網(wǎng)絡。
下一跳地址/接口:就是數(shù)據(jù)在發(fā)送到目標地址的旅途中下一站的地址沃琅。

假設一個IP匹配了多條路由規(guī)則哗咆,則子網(wǎng)越小的越優(yōu)先,也就是/n這樣的CIDR越大的越優(yōu)先益眉。
而假如配置了0.0.0.0/0 -> via 111.222.1.254這樣的路由策略,表示的是當解析不到任何精確的路由規(guī)則時晌柬,下一跳就統(tǒng)統(tǒng)跳往111.222.1.254。0.0.0.0在這里就是默認路由的意思郭脂。

  • DHCP
    當一個網(wǎng)絡設備初次啟動時年碘,假如沒有配置IP。它需要通過DHCP協(xié)議向所處局域網(wǎng)要一個IP朱庆。但DHCP是建立在UDP 上的協(xié)議盛泡,沒IP咋發(fā)包要IP啊。這里0.0.0.0/0的作用就是在沒要到IP時所使用的源IP娱颊。放張協(xié)議圖傲诵,感興趣的小伙伴可進一步了解:

為了首尾呼應,小姐姐再講一個網(wǎng)上看到的一個不那么冷的笑話吧箱硕。拴竹。

bitchcheker是一個揚言要攻擊Elch的黑客:

至此你有沒有更了解127.0.0.1呀~

歡迎關注我的公眾號:「碼農(nóng)知識點」,和我交流討論~

參考資料:
https://www.zhihu.com/question/20717354
https://time.geekbang.org/column/article/8590
https://www.tech-faq.com/127-0-0-1.html
https://www.howtogeek.com/225487/what-is-the-difference-between-127.0.0.1-and-0.0.0.0/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末剧罩,一起剝皮案震驚了整個濱河市栓拜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惠昔,老刑警劉巖幕与,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镇防,居然都是意外死亡啦鸣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門来氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诫给,“玉大人,你說我怎么就攤上這事啦扬≈锌瘢” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵扑毡,是天一觀的道長胃榕。 經(jīng)常有香客問我,道長瞄摊,這世上最難降的妖魔是什么勤晚? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任枉层,我火速辦了婚禮泉褐,結果婚禮上赐写,老公的妹妹穿的比我還像新娘。我一直安慰自己膜赃,他們只是感情好挺邀,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跳座,像睡著了一般端铛。 火紅的嫁衣襯著肌膚如雪琢锋。 梳的紋絲不亂的頭發(fā)上笨鸡,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天扯罐,我揣著相機與錄音宦芦,去河邊找鬼陈辱。 笑死管嬉,一個胖子當著我的面吹牛心褐,可吹牛的內容都是我干的真屯。 我是一名探鬼主播几颜,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼倍试,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蛋哭?” 一聲冷哼從身側響起县习,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谆趾,沒想到半個月后躁愿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡沪蓬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年彤钟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怜跑。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡样勃,死狀恐怖,靈堂內的尸體忽然破棺而出性芬,到底是詐尸還是另有隱情峡眶,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布植锉,位于F島的核電站辫樱,受9級特大地震影響,放射性物質發(fā)生泄漏俊庇。R本人自食惡果不足惜狮暑,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一鸡挠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搬男,春花似錦拣展、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至褐奴,卻和暖如春按脚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敦冬。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工辅搬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脖旱。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓堪遂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親夯缺。 傳聞我的和親對象是個殘疾皇子蚤氏,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容

  • 網(wǎng)絡層提供的兩種服務 在計算機網(wǎng)絡領域,網(wǎng)絡層應該向運輸層提供怎樣的服務(面向連接還是無連接)曾引起了長期的爭論踊兜,...
    srtianxia閱讀 3,974評論 0 12
  • # 圖解TCP/IP 標簽(空格分隔): 2018招聘 --- ##第1章 網(wǎng)絡基礎知識 ### ### 1.1 ...
    Kai_a3da閱讀 1,453評論 0 2
  • 這里主要介紹在網(wǎng)絡上傳輸數(shù)據(jù)時候所需要的IP地址的相關信息竿滨。相關內容主要包括:IP地址分類、子網(wǎng)劃分捏境、子網(wǎng)掩碼于游、無...
    QuietHeart閱讀 1,883評論 0 2
  • 第二章 物理層 頻分復用:頻分復用的用戶在同樣的時間占用不同的帶寬資源(頻率帶寬) 時分復用:時分復用的用戶在不同...
    PramaWells閱讀 3,661評論 1 3
  • 1、切換分支 ··· * master remotes/origin/HEAD -> origin/master...
    大飛_2048閱讀 418評論 0 0