網路與 IP

IP 位址是什麼意思:格式、分類與作用

IP 位址是網路裡每個介面的“門牌號”:IPv4 位址由 32 位二進位制組成,寫成 192.168.1.10 這樣的 4 段十進位制;前一部分(網路位)表示在哪個網段,後一部分(主機位)表示網段裡的哪一台。路由器只看網路位決定往哪送,到了目標網段,再靠 MAC 位址交到具體的網路卡。

作者 頂聯產品團隊發布於 6 分鐘閱讀

IP 位址是什麼意思:IP 位址(Internet Protocol Address)是網路層給每個網路介面分配的數字位址,資料包靠它從一台裝置送到另一台裝置。目前最常用的 IPv4 位址由 32 位二進位制組成,為了方便閱讀,寫成 4 段 0 到 255 的十進位制數,中間用點隔開,例如 192.168.1.10。一個位址分成兩部分:前面的網路位說明它在哪個網段,後面的主機位說明它是網段裡的哪一台,分界線由子網掩碼決定。IP 位址的作用可以概括成兩點:標識這個介面是誰,以及讓路由器知道資料包該往哪裡送。IPv6 位址是 128 位,寫法和規則另成一套,本文以 IPv4 為主。

點分十進位制:32 位二進位制怎麼寫成 192.168.1.10

計算機裡的 IPv4 位址就是一串 32 位的二進位制數。按 8 位一段切成 4 段,每段換算成 0 到 255 的十進位制,就得到點分十進位制寫法。每一位的權重從左到右依次是 128、64、32、16、8、4、2、1,以 192.168.1.10 為例:

段 十進位制 拆成 2 的冪 二進位制
第 1 段 192 128 + 64 11000000
第 2 段 168 128 + 32 + 8 10101000
第 3 段 1 1 00000001
第 4 段 10 8 + 2 00001010

32 位一共能表示 2^32 = 4,294,967,296 個位址,約 43 億。扣掉私網、組播、保留等特殊用途的位址,能分到網際網路上使用的更少,這就是 IPv4 位址稀缺、需要 IPv6 的根本原因。

點分十進位制有幾種看起來像、實際不對的寫法,錄台帳和寫指令碼時要特別注意:

寫法 是否合法 說明
192.168.1.10 合法 標準寫法
192.168.1.256 不合法 每段最大 255
192.168.010.1 有歧義 很多系統把 0 開頭的段當八進位制,010 被讀成 8
192.168.1 不規範 部分程式把它補成 192.168.0.1
3232235786 能被部分程式接受 32 位整數寫法,等於 192.168.1.10

第三行不是理論問題,在 Windows 和 Linux 上都能復現:

C:\> ping 192.168.010.1
正在 Ping 192.168.8.1 具有 32 位元組的資料:

$ ping 192.168.010.1
PING 192.168.010.1 (192.168.8.1) 56(84) bytes of data.

Python 的 ipaddress 模組從 3.9.5 起直接拒絕帶前導零的寫法,更早的版本則把 010 當成十進位制的 10。同一個字串,不同工具、甚至同一工具的不同版本理解都不同,所以台帳、配置和工單裡一律寫不帶前導零的標準形式。

網路位和主機位:掩碼劃出“哪個網段、哪一台”

光有位址還不夠,還要知道哪幾位是網路位。子網掩碼就是幹這個的:掩碼裡為 1 的位是網路位,為 0 的位是主機位。把位址和掩碼按位相與,得到的就是網路位址:

位址      192.168.1.10    11000000.10101000.00000001.00001010
掩碼      255.255.255.0   11111111.11111111.11111111.00000000
按位與    192.168.1.0     11000000.10101000.00000001.00000000   ← 網路位址

這裡前 24 位是網路位,寫成 192.168.1.10/24;最後 8 位的 10 是主機位,表示這個網段裡的第 10 號主機。每個網段裡有兩個位址不能分給裝置:主機位全為 0 的網路位址(192.168.1.0),和主機位全為 1 的廣播位址(192.168.1.255),所以一個 /24 能用的是 254 個。

網路位決定了一台主機怎麼發包。假設本機是 192.168.1.10/24,閘道器是 192.168.1.1:

目標位址 和本機同網段嗎 本機怎麼發
192.168.1.20 是,網路位都是 192.168.1 用 ARP 查出 .20 的 MAC,直接發給它
192.168.2.20 否 發給閘道器 192.168.1.1,由閘道器轉發
114.114.114.114 否 同樣交給閘道器

在 Linux 上可以直接問系統會怎麼走:

$ ip route get 192.168.1.20
192.168.1.20 dev eth0 src 192.168.1.10
$ ip route get 192.168.2.20
192.168.2.20 via 192.168.1.1 dev eth0 src 192.168.1.10

第一條沒有 via,說明直接投遞;第二條 via 後面是閘道器。Windows 上對應的命令是 PowerShell 的 Find-NetRoute -RemoteIPAddress 192.168.2.20。新人常見的故障“同網段能通、跨網段不通”,多半是閘道器沒填或填錯;“明明同網段卻不通”,先核對兩邊的掩碼是否一致。

A、B、C 類位址和私有位址範圍

早期的 IPv4 按位址開頭的幾位二進位制分成五類,網路位的長度由類別決定:

類別 首位元組二進位制開頭 首位元組範圍 預設網路位 用途
A 類 0 0–127 8 位(255.0.0.0) 大型網路;0 和 127 開頭的有特殊用途
B 類 10 128–191 16 位(255.255.0.0) 中型網路
C 類 110 192–223 24 位(255.255.255.0) 小型網路
D 類 1110 224–239 — 組播
E 類 1111 240–255 — 保留

1993 年起,網際網路改用 CIDR,網路位長度不再由類別決定,103 開頭的位址照樣可以按 /24 甚至更小的塊分配。今天類別只留下兩處痕跡:口語裡的“C 段”(指一個 /24),以及部分作業系統在你輸入位址後按類別自動填寫的預設掩碼,後者常常不是你該用的值。

私有位址是 RFC 1918 從 A、B、C 類裡各劃出的一塊,任何單位都可以在內部重複使用,但不能直接在網際網路上路由,存取外網要經過 NAT 轉換成公網位址:

私有位址範圍 CIDR 寫法 相當於 位址數
10.0.0.0 – 10.255.255.255 10.0.0.0/8 1 個 A 類網路 16,777,216
172.16.0.0 – 172.31.255.255 172.16.0.0/12 16 個 B 類網路 1,048,576
192.168.0.0 – 192.168.255.255 192.168.0.0/16 256 個 C 類網路 65,536

另外幾個維運中經常遇到的特殊位址:

位址 含義 什麼時候會碰到
127.0.0.0/8 環回,指本機 測試本機服務
0.0.0.0 未指定;在監聽配置裡表示“本機所有位址” ss -tln 裡看到 0.0.0.0:80,表示所有網路卡都在監聽 80 連接埠
169.254.0.0/16 鏈路本地,系統自動配置 網路卡顯示這個位址,說明沒從 DHCP 拿到位址
100.64.0.0/10 運營商級 NAT 的共享位址 寬頻拿到的不是真正的公網 IP
255.255.255.255 本網段受限廣播 DHCP 客戶端找伺服器時發出的報文
224.0.0.0/4 組播 VRRP、OSPF 等協議的報文

IP 位址、域名、MAC 位址是什麼關係

三者都是“位址”,但工作在不同層次,各管一段:

對比項 域名 IP 位址 MAC 位址
例子 www.example.com 203.0.113.30 00:00:5e:00:53:30
所在層次 應用層(DNS) 網路層 資料鏈路層
作用 給人記的名字 跨網路定址和路由 在同一網段內把幀交給具體網路卡
誰來分配 向註冊商註冊,自己設定解析 運營商、機房分配,或由 DHCP 下發 網路卡出廠時寫入,可以修改
怎麼轉換 DNS 解析成 IP ARP 解析成 MAC —
傳輸途中是否變化 — 源、目的位址一路不變,經過 NAT 時除外 每經過一個路由器就換一次

用一次網頁存取把三者串起來,本機仍是 192.168.1.10/24:

  1. 瀏覽器先做 DNS 解析,得到 www.example.com 的 IP,比如 203.0.113.30,用 dig +short www.example.com 或 nslookup www.example.com 可以看到這一步的結果。
  2. 本機比較網路位,發現 203.0.113.30 不在 192.168.1.0/24 裡,決定交給閘道器。
  3. 本機用 ARP 查出閘道器 192.168.1.1 的 MAC,已在快取裡就直接用。
  4. 發出的幀裡,目的 MAC 是閘道器的,目的 IP 是 203.0.113.30。
  5. 每經過一個路由器,二層頭被拆掉重新封裝,MAC 換成下一跳的;IP 頭裡的目的位址始終是 203.0.113.30。
  6. 最後一個路由器在伺服器所在的網段裡用 ARP 找到伺服器的 MAC,把包交過去。

三者之間也不是一一對應:一個域名可以解析出多個 IP(負載均衡、CDN),一個 IP 上可以承載多個域名(虛擬主機),一塊網路卡通常只有一個 MAC,卻可以配多個 IP。

IP 位址是根據什麼定位的

IP 位址本身不含任何地理資訊,“IP 定位”是查資料庫得出的結果。定位資料庫的資料主要來自幾個方面:

資料來源 能提供什麼 精度
位址註冊資訊(whois) 位址段由哪個機構持有、登記在哪個國家或地區 通常到國家,有時到省
路由宣告(BGP) 這段位址由哪個運營商在網際網路上宣告 到運營商
網路測量 從多個已知位置測延遲、看路由路徑,推算大致位置 取決於探測點的密度
應用和合作方提供的定位樣本 已知位置與當時所用 IP 的對應關係 取決於樣本數量,會隨位址重新分配而過時

所以 IP 定位常見這幾種偏差:手機網路的出口集中,顯示的城市可能是省會或別的城市;雲伺服器、CDN 節點顯示的是機房所在地,而不是使用者所在地;註冊地與實際使用地不一致的位址,會被一些庫識別成註冊地;走代理或 VPN 時,看到的是代理出口的位置。想知道一個位址登記在誰名下,用 whois 查:

whois 203.0.113.30
# APNIC、RIPE 的記錄重點看 inetnum(位址範圍)、netname、descr(持有機構)、country(登記國家)幾行
# ARIN 的記錄欄位名不同,對應 NetRange、NetName、OrgName、Country

IP 位址在哪裡檢視

想查什麼 Windows Linux 說明
本機網路卡上的位址 ipconfig ip -4 addr 家裡和辦公室看到的多是私網位址
掩碼和閘道器 ipconfig ip route,default via 後面是閘道器 掩碼在 Linux 上以 /24 這樣的字首長度顯示
出口公網 IP curl.exe -4 ifconfig.me curl -4 ifconfig.me 網際網路上別人看到的位址

手機在 Wi-Fi 設定裡點開當前網路的詳情就能看到本機位址。本機位址和出口位址不一樣,說明中間有路由器或運營商做了位址轉換,這在家庭寬頻和辦公網裡是常態;機房伺服器配的通常就是公網 IP,兩者一致。

機房裡一台伺服器會用到哪些 IP

新入行的維運很快會發現,一台託管伺服器身上不止一個位址:

位址 例子 配在哪裡 誰能存取
業務公網 IP 203.0.113.30/26 伺服器的業務網路卡 網際網路
閘道器 203.0.113.1 三層交換器的 VLAN 介面 同網段的伺服器
IPMI 管理 IP 10.20.0.15/24 伺服器的 BMC 管理口 只有機房管理網
內網 IP 10.30.1.15/24 伺服器的第二塊網路卡 同機房內網
交換器管理 IP 10.10.0.2/24 交換器的管理介面 只有維運

這些位址分屬不同的段、不同的用途,一個記錯就是一次故障:業務 IP 重複分配會衝突,IPMI 位址落進公網段會暴露管理口。Toplink DCIM 的 IP 位址管理按 CIDR 錄入位址段,自動算出起止位址和子網掩碼,閘道器可選段內第一個或最後一個位址;每個段可以標記為公網 IP、IPMI、客戶內網、內網 IP、臨時 IP 等型別,分別統計和分配。開通伺服器時從可用段自動取址,下架或退訂時把位址設為空閒即可回收,哪個位址在哪台機器上,一查便知。

常見問題

IP 位址會變嗎?

看分配方式。家庭寬頻的出口位址多數是動態分配的,重新撥號或光貓重啟後就可能變;家裡和辦公室的私網位址由路由器的 DHCP 下發,也可能變。機房伺服器的位址是靜態分配的,不主動變更就不會變,所以對外服務、讓對方加白名單都要用伺服器的固定位址。

IP 位址和連接埠是什麼關係?

IP 位址找到主機,連接埠找到主機上的某個程式,取值範圍是 0–65535。一條 TCP 連線由源 IP、源連接埠、目的 IP、目的連接埠共同確定,例如 SSH 預設用 22 連接埠,HTTPS 預設用 443 連接埠。

知道一個 IP 位址,能查到具體是誰嗎?

單憑公開資訊查不到。公開的 IP 定位庫只能給出大致的國家、省市和運營商;某個時刻由哪位使用者使用,只有分配位址的運營商或機房有記錄,這些記錄不對外公開。家庭寬頻和手機網路還普遍使用位址轉換,同一個公網 IP 背後可能有很多使用者。

想看看在你的機房裡怎麼用?

從一次產品示範開始,梳理你的業務鏈路。

查看價格
服務熱線 400-112-2951

讓我們聊聊你的 IDC 業務

掃碼新增企業微信,預約產品示範或申請試用。

Toplink 企業微信二維碼

長按儲存或使用企業微信 / 微信掃描

也可致電
400-112-2951
Telegram
@TopLink88