IP 位址查詢:本機、內網與出口 IP 怎麼查
IP 位址查詢先分清要哪一個:本機 IP 是網路卡上配置的位址,Windows 執行 ipconfig、Linux 執行 ip addr、交換器執行 display ip interface brief 或 show ip interface brief 就能看到;出口 IP 是網際網路上的伺服器看到的來源位址,本機查不到,只能從外部回看。兩者不一樣,說明中間有路由器或防火牆做了 NAT。
IP 位址查詢之前,先分清你要的是哪一個位址。本機 IP 是作業系統配置在網路卡上的位址,在本機執行一條命令就能看到;出口 IP 是你存取網際網路時對方伺服器看到的來源位址,本機上查不到,只能請外部的服務告訴你。家裡、辦公室和雲伺服器上,這兩個位址通常不同;機房裡分到獨立公網 IP 的伺服器,兩者相同。下面按 Windows、Linux、交換器三類給出查本機 IP 的命令和輸出的讀法,再解釋兩個位址為什麼不一樣、怎麼判斷中間隔了幾層 NAT,最後說明一台機器顯示好幾個位址時該看哪個。
Windows:用 ipconfig 檢視本機 IP
開啟命令提示符(Win + R 輸入 cmd)或 PowerShell:
ipconfig
ipconfig /all
ipconfig | findstr IPv4
ipconfig 的輸出按網路卡分段,每段開頭是網路卡名稱。找到你正在用的那塊網路卡,下面三行就是答案:
乙太網介面卡 乙太網:
連線特定的 DNS 字尾 . . . . . . . :
本地連結 IPv6 位址. . . . . . . . : fe80::1c2b:3d4e:5f60:7182%12
IPv4 位址 . . . . . . . . . . . . : 192.168.1.23
子網掩碼 . . . . . . . . . . . . : 255.255.255.0
預設閘道器. . . . . . . . . . . . . : 192.168.1.1
| 欄位 | 含義 |
|---|---|
| IPv4 位址 | 本機 IP,就是要找的位址 |
| 子網掩碼 | 和 IP 一起決定本機所在的網段 |
| 預設閘道器 | 存取其他網段和網際網路時的下一跳,一般是路由器或交換器的位址 |
| 本地連結 IPv6 位址 | fe80 開頭,每塊網路卡都會自動生成,只在本鏈路有效 |
ipconfig /all 會多顯示幾項排錯常用的資訊:“實體位址”是網路卡的 MAC;“DHCP 已啟用”為“是”表示位址是自動獲取的,下面還有 DHCP 伺服器和租約時間;“DNS 伺服器”是當前使用的 DNS。如果看到的是“自動配置 IPv4 位址 169.254.x.x”,說明網路卡沒有從 DHCP 拿到位址,系統給自己臨時配了一個,這種位址不能上網,要查網線、DHCP 伺服器或交換器連接埠。
不用命令也能看:Windows 11 在“設定 → 網路和 Internet”裡點開當前的乙太網或 WLAN 連線,在連線的屬性資訊裡能看到 IPv4 位址,選單名稱隨系統版本略有不同;也可以在“控制面板 → 網路和共享中心”裡點連線名稱,再點“詳細資訊”。
PowerShell 裡有更適合指令碼處理的寫法:
# 所有 IPv4 位址,PrefixOrigin 為 Dhcp 表示自動獲取,Manual 表示手工配置
Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias, IPAddress, PrefixLength, PrefixOrigin
# 只看帶預設閘道器的那塊網路卡,通常就是上網實際使用的
Get-NetIPConfiguration | Where-Object IPv4DefaultGateway
Linux:用 ip addr 檢視本機 IP
ip addr show # 所有網路卡的全部位址
ip -4 addr show # 只看 IPv4
ip -br -4 addr # 每塊網路卡一行,適合快速瀏覽
hostname -I # 只列出位址本身,不含環回位址
ip route show default # 預設路由走哪塊網路卡
ip addr 的輸出要會讀:
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.8.1.20/24 brd 10.8.1.255 scope global eno1
valid_lft forever preferred_lft forever
inet 10.8.1.21/24 brd 10.8.1.255 scope global secondary eno1
valid_lft forever preferred_lft forever
| 輸出片段 | 含義 |
|---|---|
eno1 |
網路卡名。eno1 一般是板載網路卡,ens192 常見於 VMware 虛擬機器,enp3s0 是按 PCI 位置命名,eth0 是老式命名,bond0 是繫結網路卡 |
state UP、LOWER_UP |
網路卡已啟用且物理鏈路已連通;顯示 DOWN 或 NO-CARRIER 說明網線沒接通或網路卡未啟用 |
link/ether 52:54:00:12:34:56 |
網路卡的 MAC 位址 |
inet 10.8.1.20/24 |
IPv4 位址和字首長度,/24 即掩碼 255.255.255.0 |
brd 10.8.1.255 |
本網段的廣播位址 |
scope global |
可以用於對外通訊的位址;環回位址顯示為 scope host |
secondary |
同一網段上的附加位址,第一個不帶 secondary 的是主位址 |
dynamic、valid_lft 86123sec |
位址由 DHCP 獲取,後面是租約剩餘時間;手工配置的位址顯示 forever |
ip -br 是較新版本 iproute2 才有的簡潔輸出,個別老系統不支援時用 ip -4 addr show 代替。ip route show default 的輸出類似 default via 10.8.1.1 dev eno1,dev 後面的網路卡就是存取外部時使用的網路卡,它上面的位址通常就是你要找的本機 IP。macOS 上可以用 ipconfig getifaddr en0 直接取出某塊網路卡的位址。
交換器:用 display ip interface brief 檢視介面 IP
交換器上只有三層介面才有 IP 位址:二層接入交換器通常只有一個管理位址,配在管理 VLAN 的介面上;三層交換器的每個 VLAN 介面上配著該網段的閘道器位址。普通的物理連接埠沒有 IP。
華為和 H3C:
display ip interface brief
display ip interface brief | exclude unassigned
華為的輸出範例:
Interface IP Address/Mask Physical Protocol
MEth0/0/1 unassigned down down
NULL0 unassigned up up(s)
Vlanif10 10.8.10.1/24 up up
Vlanif99 10.8.3.11/27 up up
Physical 和 Protocol 都是 up 的介面,位址才真正可用。MEth0/0/1 是部分機型獨立的帶外管理網口,沒配位址時顯示 unassigned;加上 | exclude unassigned 可以只看配了位址的介面。
思科:
show ip interface brief
show ip interface brief | exclude unassigned
show ip interface Vlan99
Interface IP-Address OK? Method Status Protocol
Vlan1 unassigned YES unset administratively down down
Vlan99 10.8.3.13 YES manual up up
GigabitEthernet1/0/1 unassigned YES unset up up
思科的 brief 輸出不帶掩碼,要看掩碼用 show ip interface Vlan99,其中 Internet address 一行會寫成 10.8.3.13/27 的形式。華為和 H3C 檢視單個介面的完整資訊分別用 display ip interface Vlanif99 和 display ip interface Vlan-interface99。
內網 IP 和出口 IP 為什麼不一樣
本機 IP 只在本地網路裡有意義。10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 這些私網位址在網際網路上不被路由,包要出去,必須由路由器或防火牆把源位址改寫成一個公網位址,這就是 NAT。改寫可能發生不止一次:
筆記本 192.168.1.23 ← ipconfig 看到的本機 IP
│ 家用路由器 NAT:源位址改寫為 WAN 口位址
路由器 WAN 口 100.72.15.8
│ 運營商級 NAT:再改寫一次
運營商出口 203.0.113.45 ← 網站看到的“你的 IP”
NAT 裝置用連接埠號區分不同的內網連線,所以一個出口位址後面可以藏著成百上千台裝置,這些裝置存取外部網站時,對方看到的都是同一個 IP。查出口 IP 只能從外部回看,一條命令即可:Linux 和 macOS 執行 curl -4 ifconfig.me,Windows 執行 curl.exe -4 ifconfig.me。
判斷中間隔了幾層 NAT,把三個位址放在一起比:
| 本機 IP | 路由器 WAN 口 IP | 查到的出口 IP | 結論 |
|---|---|---|---|
| 公網位址 | — | 與本機 IP 相同 | 本機直接持有公網位址,如機房裡分配了獨立 IP 的伺服器 |
| 私網位址 | 公網位址 | 與 WAN 口相同 | 只有一層 NAT,可以在路由器上做連接埠對映 |
| 私網位址 | 私網位址或 100.64–100.127 開頭 | 與 WAN 口不同 | 運營商那邊還有一層 NAT,在自家路由器上做連接埠對映無效 |
| 私網位址(雲伺服器) | 不涉及 | 平台分配的公網位址 | 雲平台在網路卡外做一對一對映,入站是否放行看安全組 |
分清這兩個位址,在幾件事上直接影響結果:請對方給你的伺服器開白名單,要報出口 IP,不是 ipconfig 裡的位址;外部系統日誌裡記錄的是出口 IP,排查時要用它去對;同一個辦公室所有人共用一個出口,對方按 IP 限頻時會被當成一個人。
一台機器顯示好幾個 IP,看哪個
裝了虛擬機器、Docker、VPN 的機器,ipconfig 或 ip addr 會列出一長串位址,大部分不是你要找的:
| 看到的位址或網路卡 | 是什麼 | 是不是要找的本機 IP |
|---|---|---|
| 127.0.0.1(lo) | 環回位址 | 不是,只在本機內部使用 |
| 169.254.x.x | DHCP 失敗後系統自配的位址 | 不是,說明這塊網路卡沒拿到正常位址 |
| docker0 上的 172.17.0.1 | Docker 預設網橋 | 不是,是容器網路的閘道器 |
| virbr0 上的 192.168.122.1 | KVM/libvirt 預設的 NAT 網路 | 不是 |
| VMware Network Adapter VMnet1、VMnet8,vEthernet (WSL) | 虛擬機器和 WSL 的虛擬網路卡 | 不是 |
| VPN、組網工具的網路卡,如 100.64.0.0/10 範圍內的位址 | 虛擬專用網內部的位址 | 只在 VPN 裡有意義 |
| 同一塊網路卡上的多個 inet,帶 secondary | 伺服器的附加 IP | 都是本機 IP,不帶 secondary 的是主位址 |
| 帶預設閘道器或預設路由的網路卡上的位址 | 上網實際使用的介面 | 通常就是要找的本機 IP |
規律只有一條:先找帶預設閘道器的那塊網路卡。Windows 看 ipconfig 裡“預設閘道器”不為空的那一段;Linux 看 ip route show default 裡 dev 後面的網路卡名。
機房裡不登入伺服器,怎麼查它的 IP
客戶報障、伺服器密碼丟失、或者要核對台帳時,常常需要在不登入伺服器的情況下確認它的位址:
- 查 IP 登記記錄。位址分配時登記過的,按伺服器或機櫃位置直接查,這是最快的方式。
- 從交換器反查。先在接入交換器上看伺服器所在連接埠學到的 MAC(華為用
display mac-address GigabitEthernet0/0/5,H3C 用display mac-address interface GigabitEthernet1/0/5,思科用show mac address-table interface GigabitEthernet1/0/5),再到閘道器上按 MAC 查 ARP 表:華為、H3C 執行display arp | include 5254-0012-3456,思科執行show ip arp | include 5254.0012.3456,對應的 IP 就是伺服器正在使用的位址。 - 查 BMC 管理口位址。伺服器能進系統時,執行
ipmitool lan print 1可以看到 BMC 的 IP Address、Subnet Mask 和 MAC Address,通道號多數機型是 1,個別機型不同;進不了系統時,開機自檢畫面或 BIOS 的 IPMI/BMC 設定頁面裡也能看到。
第 2 種方法得到的是伺服器實際在用的位址,和登記記錄不一致時,說明有人改過 IP 或者台帳沒有更新。Toplink DCIM 的 IP 位址管理登記每個位址分給了哪台伺服器、屬於哪個段,IPMI 管理口的位址段可以單獨標記型別分開統計;交換器管理在伺服器列表裡顯示每台機器接在哪台交換器的哪個連接埠,並可以在交換器上做 ARP 繫結和源位址校驗,客戶私自改了 IP,流量會在連接埠上被丟棄,台帳和實際位址也就不會長期對不上。
常見問題
Linux 上執行 ifconfig 提示 command not found 怎麼辦?
較新的 Debian、Ubuntu 和 RHEL 系列預設不再安裝 net-tools,直接用 ip addr 即可;確實要用 ifconfig 就安裝 net-tools 包。注意 ifconfig 不顯示用 ip addr add 新增、又沒有設定標籤的附加位址,多 IP 伺服器上以 ip addr 的輸出為準。
IP 位址每次開機都變怎麼辦?
說明位址是 DHCP 自動分配的,租約到期或網路卡更換後就可能變化。需要固定時有兩種做法:在路由器或 DHCP 伺服器上按 MAC 位址做位址保留,或在本機手工配置靜態 IP;靜態位址要選在 DHCP 位址池之外,避免和其他裝置衝突。
手機的 IP 位址在哪裡看?
安卓一般在“設定 → WLAN”裡點開已連線的網路檢視詳情,iPhone 在“設定 → 無線區域網”裡點已連線網路右側的資訊按鈕。這裡顯示的是手機在 Wi-Fi 區域網裡的位址,出口 IP 同樣要透過存取外部網站回看。