前几天帮一位朋友远程调网络,聊到一半对方发来一张截图,图里是路由器后台。我问:你本机 IP 呢?他说:不就这个吗?其实那是路由器的管理地址。这种情况我见过太多次。查自己电脑的 IP 地址,听起来简单到不行,可真到了现场,Windows、macOS、Linux 三个系统各有各的脾气,图形界面藏得深,命令行参数又不一样。
所以我把三套系统的常见查询方法完整梳理了一遍,从图形界面到终端命令,从最基础的操作到容易踩坑的细节,一次讲透。这篇文章适合所有被“帮我查一下本机IP”这句话难住过的人,也适合刚入门的朋友当作速查手册。顺序上,我会先解释你查到的到底属于哪种 IP,再分别讲三个系统的具体操作,最后把高频问题集中复盘一遍。
1. 先搞清楚要查哪种 IP 地址:内网、公网、IPv6
1.1 IP 地址就是设备的“门牌号”
IP 地址的全称是 Internet Protocol Address,翻译成大白话,就是网络世界里的门牌号。你在家里、办公室、学校,设备接入局域网时会获得一个地址;设备访问互联网时,经过路由器转发,外部服务器看到的又是另一个地址。两个地址都叫 IP,但作用完全不同。
日常大家最常遇到的是一串类似192.168.1.8的地址,这是 IPv4 私网地址,属于内网。你的电脑、手机、智能电视连同一个路由器时,都会被分配一个这样的地址。它只在当前局域网内部有效,别人在外面没法直接用这个地址访问你。IPv6 地址更长,看起来像240e:390:...一长串,在较新的系统里也会显示。
很多教程直接说“输入 ipconfig 看 IP 地址”,但有人看完后给我发来一个0.0.0.0或::,说查不到。其实那不是查不到,是你把参数含义搞混了。所以第一步必须建立概念:你要查的是“本机网卡被分配到的 IPv4 地址”,在命令行请认准IPv4 地址或inet后面的值。
1.2 先判断你要在哪个“网络场景”里用
同一台电脑可能同时有多个 IP:有线网卡一个、无线网卡一个、虚拟机虚拟网卡还有一堆。如果条件允许,先关掉用不到的网卡,能少看很多干扰信息。
举个例子:我办公电脑同时开了 Wi-Fi、有线网卡、VMware 虚拟网卡。用ipconfig一下,会出现“以太网适配器”“无线局域网适配器 WLAN”“以太网适配器 VMware Network Adapter VMnet8”等好几块。如果只想着“找IP”,容易被 VMnet 的 192.168.xxx.1 迷惑。正确的思路是:看当前真实连网的那块网卡。连了 Wi-Fi 就看 WLAN,插了网线就看以太网,虚拟机地址一般不用管。
另外,要区分公网 IP 的话,家庭宽带正常情况下只有一个公网地址,被分配在路由器 WAN 口。电脑上查到的私网地址,和网站显示的公网 IP 不是一回事。看公网 IP 我一般直接打开搜索“IP”,搜索引擎会直接展示本机出网地址,或者用curl ifconfig.me之类的接口查,也能看到运营商分配的公网地址。
2. Windows 系统查 IP 地址的几种靠谱方式
2.1 图形界面:设置里的网络属性
Windows 10 和 Windows 11 的图形界面路径其实已经很接近了。右键点击任务栏右下角的网络图标,选择“网络和 Internet 设置”,进入“高级网络设置”或直接点“查看硬件和连接属性”,就能看到每个网卡的信息。
在 Windows 11 中,更快的路径是:设置 → 网络和 Internet → 高级网络设置 → 硬件和连接属性。这里会列出所有网卡,找到显示“已连接”的那张卡片,后面的“IPv4 地址”就是你要找的。
需要注意,图形界面里中文翻译在不同版本里略有差异。Windows 10 里可能是“更改适配器选项”,Windows 11 里叫“高级网络设置”。如果直接找不到,按Win + R打开运行框,输入ncpa.cpl回车,在弹出的网络连接窗口里找到正在使用的网卡,双击后点“详细信息”,也能看到 IP、子网掩码、默认网关、DNS,这个方法在旧版本 Windows 上特别实用。
2.2 命令行首选:ipconfig
图形界面适合纯小白,但做网络排查或者远程指导别人操作时,命令行永远是最快的。
按Win + R,输入cmd回车,在黑色命令提示符窗口里输入:
ipconfig回车后能看到一堆结果。别慌,按我在第一部分说的办法,先找“无线局域网适配器 WLAN”或“以太网适配器 以太网”那段,再看IPv4 地址字段。所有网卡信息都会列出来,包括默认网关。默认网关通常是局域网路由器的 IP,如果你看到本机 IP 是 192.168.1.8,网关是 192.168.1.1,那路由器的地址就是 192.168.1.1。
想看得更详细,输入:
ipconfig /all这个命令会列出网卡物理地址(MAC)、DHCP 是否开启、DNS 服务器、租约获取时间等详细信息。排查网络问题时,我基本都先用/all,一次能拿到全部关键信息。
2.3 PowerShell 与更多扩展用法
在 Windows PowerShell 里,除了ipconfig,还可以用 cmdlet:
Get-NetIPAddress输出会按接口索引分列,第一列IPAddress就是地址,InterfaceAlias表示网卡名称。只看 IPv4 可以加参数:
Get-NetIPAddress -AddressFamily IPv4这个命令比ipconfig结构更清晰,适合脚本自动化。比如我想快速拿到本机动态获取到的地址并复制,可以用:
(Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.InterfaceAlias -eq "WLAN"}).IPAddress这种方法的好处是能精确取到某个网卡的地址,后续在脚本里可以直接赋值给变量。
另外,Windows 还保留了ping、tracert、pathping等网络排查命令,虽然不直接显示本机 IP,但能帮你验证网络连通性。比如ping 127.0.0.1成功,只说明本机协议栈正常;ping 网关地址成功,才说明局域网链路没问题。
3. macOS 系统查 IP 地址的常用方法
3.1 系统设置里的网络详情
macOS 和 Windows 一样,图形界面很友好。点左上角苹果菜单 → 系统设置(或者早期版本里的“系统偏好设置”)→ 网络。左侧选择当前连接的网络,比如 Wi-Fi 或以太网,右侧就会显示 IP 地址。在较新版本 macOS 里,网络设置入口会有些变化,需要点击“详细信息”才能看到更多参数。
很多人在 macOS 上找不到 IP,是因为默认视图只显示“已连接”状态。我一般让朋友点一下已连接的网络名称,再点“详细信息”,里面能看到 IP 地址、路由器地址、DNS 服务器等完整信息。在 macOS Ventura 及以后的版本中,界面可能变成列表式,需要先点“网络”服务,再查看右侧详情。
如果你连接的是 Wi-Fi,还可以按住Option键,再点击菜单栏右上角的 Wi-Fi 图标,系统会直接弹出当前 Wi-Fi 的信息列表,里面包含 IP 地址、路由器、子网掩码、物理地址等。这个方法是隐藏技巧,比进设置快很多。
3.2 终端命令:ifconfig 与 ipconfig
macOS 内置了终端(Terminal.app),打开后可以输入很多类 Unix 命令。最传统的是:
ifconfig输出结果比较长,包含 lo0、en0、en1、utun 等多个接口。查找时重点看en0(通常是 Wi-Fi)和en1(部分机型是有线网卡),以及lo0(本机回环地址,永远是 127.0.0.1)。带有inet字段且不是127.0.0.1的地址,就是本机局域网 IPv4 地址。
ifconfig输出太冗长,我更喜欢配合过滤命令用:
ifconfig | grep inet这样只看 inet 相关行,一下子定位到 IPv4 和 IPv6 地址。不过 macOS 里的grep默认会把所有inet6也列出来,如果你只关心 IPv4,可以用:
ifconfig | grep "inet "注意inet后面要加一个空格,否则会匹配到 inet6。
3.3 一条命令精准获取 Wi-Fi/IP 地址
macOS 还提供了一套自己的网络命令,跟 Windows 的ipconfig名字相同但用法不同。在 macOS 终端里执行:
ipconfig getifaddr en0会直接输出en0接口的 IPv4 地址,没有多余文字,非常适合脚本调用。
问题是 macOS 不同机型的网卡接口名不一定一样。多数 MacBook 的 Wi-Fi 是en0,但部分外接 USB 网卡可能是en5或en6;带以太网口的 Mac mini,有线网卡可能叫en0,Wi-Fi 叫en1。不确定接口名时,先执行:
networksetup -listallhardwareports它会列出所有硬件端口对应的设备名,比如 Wi-Fi 对应 en0,Thunderbolt Bridge 对应 bridge0 等。知道了接口名,再用ipconfig getifaddr <接口名>,百发百中。
如果你只想拿当前默认路由的源地址,还可以用:
route -n get default | grep interface拿到默认网卡名,再配合ipconfig getifaddr使用,在同时有线和无线混合网络的环境下尤其好用。
4. Linux 系统查 IP 地址的差异与命令
4.1 ip addr 是当前主流
Linux 发行版众多,桌面环境也不统一,但命令行的思路是相通的。现代 Linux 系统(几乎所有的主流发行版)都推荐用ip命令。打开终端,输入:
ip addr或简写:
ip a输出会列出 lo、eth0、ens33、wlan0 等接口。状态为UP且带有inet字段的地址,就是当前网卡的 IPv4 地址。
这个命令最大的优势是信息集中,和ifconfig老命令相比,ip命令显示范围更全面,多块网卡、多个地址、状态都能一次性看到。在 Ubuntu、CentOS、Rocky Linux、openSUSE、Debian、国产系统(如统信 UOS、麒麟)的新版本上,基本都会预装 iproute2 工具包,所以ip addr基本不用额外安装。
只看 IPv4 地址,可以用:
ip -4 addr show只看某个指定网卡,比如 eth0:
ip -4 addr show eth0这种精确过滤配合管道命令,在写脚本时特别省事。
4.2 旧命令 ifconfig 还在用吗?
不少老教程会教你用ifconfig,但在较新的 Linux 发行版上,输入ifconfig可能会提示“command not found”。这是因为ifconfig属于 net-tools 工具包,而很多新版系统默认只安装 iproute2。
需要安装 net-tools 的话,Ubuntu/Debian 系:
sudo apt install net-toolsRed Hat/CentOS/Rocky 系:
sudo dnf install net-tools装好之后就能用了:
ifconfig输出里flags=...UP...的接口,下面的inet就是 IPv4 地址。不过既然ip命令已经足够好,我建议新手直接学ip addr,免得以后换台新机器还要先装工具。
4.3 简化命令与图形环境
如果你只是想知道本机 IP,不想看一大坨输出,Linux 上有个最简单的命令:
hostname -I注意是大写I。执行后会输出所有网卡的 IP 地址,一行搞定,没有多余信息。对于快速确认地址非常方便。
在带图形界面的 Linux 系统里(比如 Ubuntu 桌面版、Linux Mint、统信 UOS),也可以像 Windows/macOS 那样走图形界面。一般是点击右上角的网络图标 → 设置(或连接信息)→ 查看 IPv4 地址。Ubuntu 的 GNOME 桌面上,点击“有线设置”或“Wi-Fi 设置”,再点当前连接旁的齿轮图标,就能看到 IP 地址。
如果你用的是 NetworkManager 管理网络,还可以用nmcli命令:
nmcli device show在输出里找到IP4.ADDRESS[1]就是 IP 地址。只看活动连接的话:
nmcli -p device status这种方式在服务器维护场景下比图形界面更可靠,因为很多服务器只装了命令行环境。
4.4 无桌面环境的纯服务器排查
Linux 服务器通常没有桌面,只能靠命令行。除了ip a,我还经常配合以下命令判断状态:
ip routedefault那行里的via后面就是网关地址。如果没有默认路由,说明这台机器可能没配好网关,即使有 IP 也可能无法上网。
有时候ip a下面还有一个state DOWN的接口,说明网卡被禁用。可以临时启用:
sudo ip link set dev eth0 up如果要彻底排查,还得看网络配置文件。Ubuntu Server 22.04 以上默认使用 netplan,配置文件在/etc/netplan/下;CentOS/Rocky 使用 ifcfg 文件或 NetworkManager,路径一般是/etc/sysconfig/network-scripts/。不过这里不展开配置方法,只想强调一点:命令行查看 IP 是“结果”,配置文件和 DHCP 服务情况才是“原因”,排查时别只盯输出。
5. 查看 IP 时最容易踩的坑
5.1 169.254 开头的“幽灵地址”
Windows 上如果ipconfig看到的 IPv4 地址是169.254.x.x,很多人以为这就是被分配的 IP,其实这是系统没有找到 DHCP 服务器时自动生成的随机地址,学名叫 APIPA(自动专用 IP 寻址)。出现这种情况,通常意味着网线没插好、Wi-Fi 连接失败、路由器 DHCP 服务异常,或者驱动有问题。
遇到这种地址,别继续拿它当本机 IP 去配置服务。先检查物理链路:网线指示灯是否亮、Wi-Fi 密码是否输错、路由器是否正常运行。如果还是不行,尝试ipconfig /release再ipconfig /renew,强制重新获取地址。
macOS 和 Linux 上如果DHCP获取失败,一般不会生成 169.254 的地址显示为正常状态,而是可能显示没有 IP,或者出现自签名 169.254 地址。这类问题基本指向同一个原因:设备没能从网络里拿到有效配置。
5.2 公网 IP 和私网 IP 别搞混
有很多人把路由器后台显示的 IP 当成自己电脑的 IP,也有不少人把百度搜出来的 IP 当成自己电脑网卡的 IP。这两种情况都容易出问题。
电脑网卡上的192.168.x.x、10.x.x.x、172.16.x.x都是私网地址,只在内网有效;百度搜索出来的 IP 是你出口的公网 IP,由运营商分配,通常体现在路由器 WAN 口。你要远程访问家里的电脑,需要做端口映射,涉及的是公网 IP,而不是电脑上的网卡地址;但你在局域网内共享文件、访问 NAS,用的是电脑网卡地址。
一个容易忽略的细节是:如果你的网络环境有多级路由器,电脑查到的网关可能只是一级路由器的地址,再往上还有别的路由器。排查这种多级网络时,需要一层一层登录路由器后台看 WAN IP,不能只看电脑上的网关。
5.3 虚拟机、Docker 容器里看到的 IP 是另一回事
Win/Mac 上装虚拟机(比如 VMware、VirtualBox),虚拟机里执行ipconfig或ip addr,拿到的可能是虚拟机虚拟网络的地址,例如192.168.x.x,但宿主机上看到的又是另一段。通过远程工具连接虚拟机时,你应该用当前虚拟机实际获得的那块网卡地址,而不是宿主机地址。
Docker 容器里的 IP 更是典型。容器内查询到的 IP 是 Docker 内部网络分配的地址,宿主机上访问不到,需要映射到宿主机端口才能从外面访问。排查“为什么容器里的 IP 不通”时,要第一时间意识到:这大概率是虚拟网络隔离问题,而不是命令输错了。
5.4 很多人把 IP 地址和 MAC 地址搞混
IP 地址是逻辑地址,可以变化;MAC 地址是物理地址,出厂唯一。Windows 的ipconfig /all里的“物理地址”、macOS/Linux 的ether字段,都是 MAC 地址。
例如你要在路由器上做 IP 与 MAC 绑定、设置 DHCP 分配,需要填写的是电脑网卡的 MAC 地址,而不是 IP。但如果你要 Ping 通局域网另一台设备,用的是它的 IP 地址。两者侧重点完全不同,混了之后配置必错。
6. 一份可以直接抄的三系统速查表
| 需求 | Windows | macOS | Linux |
|---|---|---|---|
| 查看全部网卡 IP | ipconfig | ifconfig或ipconfig getifaddr en0 | ip addr |
| 只看 IPv4 地址 | ipconfig | findstr IPv4 | ifconfig | grep "inet " | hostname -I |
| 查看详细信息 | ipconfig /all | networksetup -listallhardwareports | ip -4 addr show |
| 查看默认网关 | ipconfig里的默认网关 | route -n get default | ip route |
| 图形界面路径 | 设置 → 网络和 Internet → 硬件属性 | 系统设置 → 网络 → 网络详情 | 网络设置 → 当前连接 → IPv4 |
我在实际排查中积累的经验是:先确定“我要谁”,再去执行命令。查本机 IP 时,先判断是查局域网地址还是公网出口地址;在多个网卡环境下,先锁定当前正在使用的网卡;遇到 169.254 或者 Empty 之类的结果,第一反应应该是链路或 DHCP 出问题,而不是地址不见了。
最后再分享一个小技巧。如果你经常需要在 Windows 上远程指导别人查 IP,别让对方慢慢翻图形界面,直接让他打开命令行输入ipconfig,然后把结果截图发过来。一般五秒钟就能定位到他到底连的是 Wi-Fi 还是有线网,顺便还能看出网关和 DNS,后续排查效率高很多。