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 同样要通过访问外部网站回看。