精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你真的會查看IP地址嗎?

Android編程精選 ? 來源:Android編程精選 ? 作者:Android編程精選 ? 2022-11-29 10:19 ? 次閱讀

你知道怎么查看 IP 地址嗎?

當面試聽到這個問題的時候,面試者常常會覺得走錯了房間。我面試的是技術崗位啊,怎么問這么簡單的問題?

的確,即便沒有專業學過計算機的人,只要倒騰過電腦,重裝過系統,大多也會知道這個問題的答案:在 Windows 上是ipconfig,在 Linux 上是ifconfig。

那你知道在 Linux 上還有什么其他命令可以查看 IP 地址嗎?答案是ip addr。如果回答不上來這個問題,那你可能沒怎么用過 Linux。

那你知道 ifconfig 和 ip addr 的區別嗎?

這是一個有關 net-tools 和 iproute2 的“歷史”故事。想象一下,你登錄進入一個被裁剪過的非常小的 Linux 系統中,發現既沒有 ifconfig 命令,也沒有 ipaddr 命令,你是不是感覺這個系統壓根兒沒法用?這個時候,你可以自行安裝net-tools和iproute2這兩個工具。當然,大多數時候這兩個命令是系統自帶的。

安裝好后,我們來運行一下 ip addr。不出意外,應該會輸出下面的內容。

root@test:~#ipaddr
1:lo:mtu65536qdiscnoqueuestateUNKNOWNgroupdefault
link/loopback000000:00brd000000:00
inet127.0.0.1/8scopehostlo
valid_lftforeverpreferred_lftforever
inet6::1/128scopehost
valid_lftforeverpreferred_lftforever
2:eth0:mtu1500qdiscpfifo_faststateUPgroupdefaultqlen1000
link/etherfa3e79:75brdffffff:ff
inet10.100.122.2/24brd10.100.122.255scopeglobaleth0
valid_lftforeverpreferred_lftforever
inet6fe80:3eff7975/64scopelink
valid_lftforeverpreferred_lftforever

這個命令顯示了這臺機器上所有的網卡。大部分的網卡都會有一個 IP 地址,當然,這不是必須的。在后面的分享中,我們會遇到沒有 IP 地址的情況。IP 地址是一個網卡在網絡世界的通訊地址,相當于我們現實世界的門牌號碼。既然是門牌號碼,不能大家都一樣,不然就會起沖突。比方說,假如大家都叫六單元 1001 號,那快遞就找不到地方了。所以,有時候咱們的電腦彈出網絡地址沖突,出現上不去網的情況,多半是 IP 地址沖突了。

如上輸出的結果,10.100.122.2就是一個 IP 地址。這個地址被「點分隔為四個部分」,每個部分「8 個 bit」,所以 IP 地址總共是「32 位」。這樣產生的 IP 地址的數量很快就不夠用了。因為當時設計 IP 地址的時候,哪知道今天會有這么多的計算機啊!因為不夠用,于是就有了 IPv6,也就是上面輸出結果里面 inet6 fe80:3eff7975/64。這個有 128 位,現在看來是夠了,但是未來的事情誰知道呢?

本來 32 位的 IP 地址就不夠,還被分成了 5 類。現在想想,當時分配地址的時候,真是太奢侈了。

1af1d54a-6f1b-11ed-8abf-dac502259ad0.png

在網絡地址中,至少在當時設計的時候,對于A、B、 C類主要分兩部分,前面一部分是網絡號,后面一部分是主機號。這很好理解,大家都是六單元 1001 號,我是小區 A 的六單元 1001 號,而你是小區B 的六單元 1001 號。

下面這個表格,詳細地展示了 A、B、C 三類地址所能包含的主機的數量。在后文中,我也會多次借助這個表格來講解。

1b0d89ca-6f1b-11ed-8abf-dac502259ad0.png

這里面有個尷尬的事情,就是 C 類地址能包含的最大主機數量實在太少了,「只有 254 個」。當時設計的時候恐怕沒想到,現在估計一個網吧都不夠用吧。而 B 類地址能包含的最大主機數量又太多了。6 萬多臺機器放在一個網絡下面,一般的企業基本達不到這個規模,閑著的地址就是浪費。

無類型域間選路(CIDR)

于是有了一個折中的方式叫作「無類型域間選路」,簡稱「CIDR」。這種方式打破了原來設計的幾類地址的做法,將 32 位的 IP 地址一分為二,「前面是網絡號,后面是主機號」。從哪里分呢?你如果注意觀察的話可以看到,10.100.122.2/24,這個 IP 地址中有一個斜杠,斜杠后面有個數字 24。這種地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是網絡號,后 8 位是主機號。

伴隨著 CIDR 存在的,一個是「廣播地址」,10.100.122.255。如果發送這個地址,所有 10.100.122 網絡里面的機器都可以收到。另一個是子網掩碼,255.255.255.0。將子網掩碼和 IP 地址進行 AND 計算。前面三個 255,轉成二進制都是 1。1 和任何數值取 AND,都是原來數值,因而前三個數不變,為 10.100.122。后面一個 0,轉換成二進制是 0,0 和任何數值取AND,都是 0,因而最后一個數變為 0,合起來就是10.100.122.0。這就是「網絡號」。將子網掩碼和 IP地址「按位計算 AND」,就可得到網絡號。

公有 IP 地址和私有 IP 地址

在日常的工作中,幾乎不用劃分 A 類、B 類或者 C 類,所以時間長了,很多人就忘記了這個分類,而只記得 CIDR。但是有一點還是要注意的,就是公有 IP 地址和私有 IP 地址。

1b30393e-6f1b-11ed-8abf-dac502259ad0.png

我們繼續看上面的表格。表格最右列是私有 IP 地址段。平時我們看到的數據中心里,辦公室、家里或學校的 IP 地址,一般都是私有 IP 地址段。因為這些地址允許組織內部的 IT 人員自己管理、自己分配,而且可以重復。因此,你學校的某個私有 IP 地址段和我學校的可以是一樣的。這就像每個小區有自己的樓編號和門牌號,你們小區可以叫 6 棟,我們小區也叫 6 棟,沒有任何問題。但是一旦出了小區,就需要使用公有 IP 地址。就像人民路 888 號,是國家統一分配的,不能兩個小區 都叫人民路 888 號。

「公有 IP 地址有個組織統一分配」,你需要去買。如果你搭建一個網站,給你學校的人使用,讓你們學校的IT 人員給你一個 IP 地址就行。但是假如你要做一個類似網易 163 這樣的網站,就需要有公有 IP 地址,這樣全世界的人才能訪問。

表格中的 192.168.0.x 是最常用的私有 IP 地址。你家里有 Wi-Fi,對應就會有一個 IP 地址。一般你家里地上網設備不會超過 256 個,所以 /24 基本就夠了。有時候我們也能見到 /16 的 CIDR,這兩種是最常見的,也是最容易理解的。

不需要將十進制轉換為二進制 32 位,就能明顯看出 192.168.0 是網絡號,后面是主機號。而整個網絡里面的第一個地址 192.168.0.1,往往就是你這個私有網絡的出口地址。例如,你家里的電腦連接 Wi-Fi,Wi-Fi 路由器的地址就是 192.168.0.1,而 192.168.0.255 就是廣播地址。一旦發送這個地址,整個192.168.0 網絡里面的所有機器都能收到。但是也不總都是這樣的情況。因此,其他情況往往就會很難理解,還容易出錯。

舉例:一個容易“犯錯”的 CIDR

我們來看 16.158.165.91/22 這個 CIDR。求一下這個網絡的第一個地址、子網掩碼和廣播地址。

你要是上來就寫 16.158.165.1,那就「大錯特錯」了。

/22不是 8 的整數倍,不好辦,只能先變成二進制來看。16.158 的部分不會動,它占了前 16 位。中間的 165,變為二進制為10100101。除了前面的 16 位,還剩 6 位。所以,這 8 位中前 6 位是網絡號,16.158.<101001>,而<01>.91是機器號。

第一個地址是16.158.<101001><00>.1,即16.158.164.1。子網掩碼是255.255.<111111><00>.0,即255.255.252.0。廣播地址為16.158.<101001><11>.255,即16.158.167.255。

這五類地址中,還有一類「D 類是組播地址」。使用這一類地址,屬于某個組的機器都能收到。這有點類似在公司里面大家都加入了一個郵件組。發送郵件,加入這個組的都能收到。組播地址在后面講述 VXLAN協議的時候會提到。

講了這么多,才講了上面的輸出結果中很小的一部分,是不是覺得原來并沒有真的理解 ip addr 呢?我們接著來分析。

在 IP 地址的后面有個「scope」,對于 eth0 這張網卡來講,是 global,說明這張網卡是可以對外的,可以接收來自各個地方的包。對于 lo 來講,是 host,說明這張網卡僅僅可以供本機相互通信

lo 全稱是「loopback」,又稱環回接口,往往會被分配到127.0.0.1這個地址。這個地址用于本機通信,經過內核處理后直接返回,不會在任何網絡中出現。

MAC 地址

在 IP 地址的上一行是 link/ether「fa3e79:75」brd ffffff:ff,這個被稱為「MAC 地址」,是一個網卡的「物理地址」,用「十六進制」,6 個 byte 表示。

MAC 地址是一個很容易讓人“誤解”的地址。因為 MAC 地址號稱全局唯一,不會有兩個網卡有相同的 MAC 地址,而且網卡自生產出來,就帶著這個地址。很多人看到這里就會想,既然這樣,整個互聯網的通信,全部用 MAC 地址好了,只要知道了對方的 MAC 地址,就可以把信息傳過去。

這樣當然是不行的。一個網絡包要從一個地方傳到另一個地方,除了要有確定的地址,還需要有定位功能。而有門牌號碼屬性的 IP 地址,才是有遠程定位功能的。

例如,你去杭州市網商路 599 號 B 樓 6 層找劉超,你在路上問路,可能被問的人不知道 B 樓是哪個,但是可以給你指網商路怎么去。但是如果你問一個人,你知道這個身份證號的人在哪里嗎?可想而知,沒有人知道。

MAC 地址更像是「身份證」,是一個唯一的標識。它的唯一性設計是為了組網的時候,不同的網卡放在一個網絡里面的時候,可以不用擔心沖突。從硬件角度,保證不同的網卡有不同的標識。

「MAC 地址是有一定定位功能的,只不過范圍非常有限」。你可以根據 IP 地址,找到杭州市網商路 599 號B 樓 6 層,但是依然找不到我,你就可以靠吼了,大聲喊身份證 XXXX 的是哪位?我聽到了,我就會站起來說,是我啊。但是如果你在上海,到處喊身份證 XXXX 的是哪位,我不在現場,當然不會回答,因為我在杭州不在上海。

所以,「MAC 地址的通信范圍比較小,局限在一個子網里面」。例如,從 192.168.0.2/24 訪問 192.168.0.3/24 是可以用 MAC 地址的。一旦跨子網,即從 192.168.0.2/24 到 192.168.1.2/24,MAC地址就不行了,需要 IP 地址起作用了。

網絡設備的狀態標識

解析完了 MAC 地址,我們再來看< BROADCAST,MULTICAST,UP,LOWER_UP >是干什么的?這個叫作net_device flags,網絡設備的狀態標識。

「UP」表示網卡處于「啟動」的狀態;「BROADCAST」表示這個網卡有「廣播地址」,可以發送廣播包;MULTICAST表示網卡可以發送多播包;LOWER_UP 表示 L1 是啟動的,也即網線插著呢。

「MTU1500」是指什么意思呢?是哪一層的概念呢?「最大傳輸單元 MTU 為 1500」,這是以太網的默認值。上一節,我們講過網絡包是層層封裝的。「MTU 是二層 MAC 層的概念」。MAC 層有 MAC 的頭,以太網規定連 MAC 頭帶正文合起來,不允許超過 1500 個字節。正文里面有 IP 的頭、TCP 的頭、HTTP 的頭。如果放不下,就需要分片來傳輸。

qdisc pfifo_fast是什么意思呢?qdisc 全稱是queueing discipline,中文叫排隊規則。內核如果需要通過某個網絡接口發送數據包,它都需要按照為這個接口配置的 qdisc(排隊規則)把數據包加入隊列。

最簡單的 qdisc 是pfifo,它不對進入的數據包做任何的處理,數據包采用先入先出的方式通過隊列。pfifo_fast 稍微復雜一些,它的隊列包括三個波段(band)。在每個波段里面,使用先進先出規則。三個波段(band)的優先級也不相同。band 0 的優先級最高,band 2 的最低。如果 band 0 里面有數據包,系統就不會處理 band 1 里面的數據包,band 1 和 band 2 之間也是一樣。數據包是按照「服務類型」(Type of Service,TOS)被分配多三個波段(band)里面的。TOS 是 IP 頭里面的一個字段,代表了當前的包是高優先級的,還是低優先級的。

隊列是個好東西,后面我們講云計算中的網絡的時候,會有很多用戶共享一個網絡出口的情況,這個時候如何排隊,每個隊列有多粗,隊列處理速度應該怎么提升,我都會詳細為你講解。

小結

怎么樣,看起來很簡單的一個命令,里面學問很大吧?通過這一節,希望你能記住以下的知識點,后面都能用得上:

IP 是地址,有「定位功能」;MAC 是身份證,無定位功能;

CIDR 可以用來判斷是不是本地人;

IP 分「公有」的 IP 和「私有」的 IP。后面的章節中我會談到“出國門”,就與這個有關。

最后,給你留兩個思考題。

你知道net-tools和iproute2的“歷史”故事嗎?

這一節講的是如何查看 IP 地址,那你知道 IP 地址是怎么來的嗎?

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208939
  • ip地址
    +關注

    關注

    0

    文章

    295

    瀏覽量

    17008

原文標題:你真的會查看 IP 地址嗎?

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何查看本機器的ip地址

    如何查看本機器的ip地址網卡在使用中有兩類地址,一類是大家都熟悉的IP地址,另一類就是MAC
    發表于 10-11 23:48

    怎么查qq好友的ip地址 如何查看QQ好友的IP地址

    如何查QQ好友的IP地址 如果比較鐘情于QQ原版,不喜歡用珊瑚之類的QQ,又想知道好友的IP,查QQ好友IP
    發表于 01-03 22:13 ?1.5w次閱讀

    怎樣查看電腦的物理地址(用命令查看和網卡查看)

    怎樣查看電腦的物理地址(用命令查看和網卡查看) 可通過這種辦法確定自己的IP設置的正確性
    發表于 10-11 23:46 ?12.1w次閱讀
    怎樣<b class='flag-5'>查看</b>電腦的物理<b class='flag-5'>地址</b>(用命令<b class='flag-5'>查看</b>和網卡<b class='flag-5'>查看</b>)

    如何知道mac地址 怎么查看IP地址

    如何知道mac地址 怎么查看IP地址 步驟如下: 1 在“運行”中輸入 cmd 2 在打開的命令提示符界面中輸入 ipconfig/all 3 里面的rnet NIC里有
    發表于 03-21 12:08 ?5.4w次閱讀
    如何知道mac<b class='flag-5'>地址</b> 怎么<b class='flag-5'>查看</b><b class='flag-5'>IP</b><b class='flag-5'>地址</b>

    如何用DOS命令查看自己的IP地址

    P地址IP協議提供的一種統一的地址格式,互聯網上的每一個網絡和每一臺電腦都有一個邏輯地址,說的通俗一點IP
    發表于 01-17 15:50 ?1.2w次閱讀
    如何用DOS命令<b class='flag-5'>查看</b>自己的<b class='flag-5'>IP</b><b class='flag-5'>地址</b>

    虛擬主機的實現方法_虛擬主機的IP地址查看

    本文主要介紹了虛擬主機的實現方法及虛擬主機的IP地址查看
    發表于 05-06 11:07 ?1078次閱讀

    如何查看Linux中的ip地址

    在排除網絡問題,設置新連接或配置防火墻時,了解設備的 IP 地址非常重要。下面我們就來看看Linux中查看ip地址的方法吧!
    發表于 05-25 09:35 ?2870次閱讀
    如何<b class='flag-5'>查看</b>Linux中的<b class='flag-5'>ip</b><b class='flag-5'>地址</b>

    虛擬機:Linux查看DNS服務器IP地址的方法

    虛擬機:Linux查看DNS服務器IP地址的方法
    的頭像 發表于 06-22 15:12 ?1.4w次閱讀
    虛擬機:Linux<b class='flag-5'>查看</b>DNS服務器<b class='flag-5'>IP</b><b class='flag-5'>地址</b>的方法

    一個可以輕松查看局域網內的設備ip地址的神器

    情況下不方便登錄路由器查看,比如在公司,路由器的管理員賬戶和密碼都是保密的。 今天給大家推薦一個非常好用非常方便的IP掃描工具,可以輕松查看局域網內的設備ip
    的頭像 發表于 02-14 11:42 ?2.1w次閱讀

    IP地址查看

    IP地址查看器免費下載。
    發表于 07-08 10:19 ?2次下載

    如何在Linux查看公有IP地址和私有IP地址

    在排除網絡問題,建立新連接或配置防火墻時,了解計算機的IP地址非常重要。
    的頭像 發表于 12-06 16:55 ?4336次閱讀

    linux系統查看ip地址命令

    在Linux系統中,可以使用ifconfig命令來查看IP地址。ifconfig命令被用于配置和顯示網絡接口的網絡參數,包括IP地址。執行以
    的頭像 發表于 11-08 15:09 ?2637次閱讀

    必知!如何有效保護IP地址

    地址是一種通過加密和隧道技術在公共網絡上建立專用網絡的方法。當你連接到服務器時,的真實IP地址會被隱藏,取而代之的是服務器分配給你的IP
    的頭像 發表于 09-07 11:16 ?326次閱讀

    如何查看公共IP地址安全?這些要點要牢記

    網絡已經離不開我們的生活,當你在訪問網絡時,不管是為了娛樂、工作還是其他目的,不可避免要接觸公共IP地址,為確保自己的個人隱私、工作數據等的安全我們必須要確保IP地址的安全穩定,那我們
    的頭像 發表于 09-07 11:18 ?277次閱讀

    暴露IP地址影響網絡隱私安全嗎?

    的尤為重要,所以IP地址的暴露影響隱私安全嗎?也不會,知道這個問題的答案首先我們要了解IP地址
    的頭像 發表于 11-14 15:36 ?127次閱讀
    暴露<b class='flag-5'>IP</b><b class='flag-5'>地址</b><b class='flag-5'>會</b>影響網絡隱私安全嗎?