最常用也最可靠的方式是用 ip 命令:ip addr show(或简写 ip a)可查看所有接口的 ipv4/ipv6 地址、子网掩码及状态;加 -4 参数可过滤仅 ipv4;hostname -i 则快速输出所有启用接口的 ipv4 地址列表。

直接看当前系统的 IP 地址,最常用也最可靠的方式是用 ip 命令。它默认预装、信息全、支持 IPv4/IPv6,是现代 Linux 的标准做法。
用 ip addr 查所有接口的 IP(推荐)
运行:
ip addr show 或简写为 ip a
输出中找以 inet 开头的行,后面跟着的就是 IPv4 地址(如 inet 192.168.1.100/24),斜杠后的数字是子网掩码的 CIDR 表示法。
如果只关心主网卡(比如 ens33 或 eth0),可指定接口:
ip addr show ens33
想只看 IPv4 地址、去掉 IPv6 干扰,加 -4 参数:
ip -4 addr show
用 hostname -I 快速获取内网 IPv4 列表
这个命令最轻量,适合脚本或快速确认:
hostname -I
它会以空格分隔形式输出所有已启用接口的 IPv4 地址(不含回环地址 127.0.0.1),例如:192.168.1.100 172.17.0.2
注意:不显示子网掩码、不显示接口名、也不含 IPv6。如果输出为空,说明系统还没拿到有效 IPv4 地址,需检查网络连接或 DHCP 状态。
用 ifconfig 查看(传统方式,需手动安装)
虽然已被标记为过时,但很多老环境或习惯用户仍在用:
ifconfig
若提示 command not found,说明未安装 net-tools:
– Ubuntu/Debian:sudo apt install net-tools
– RHEL/CentOS/Rocky:sudo dnf install net-tools(新版)或 sudo yum install net-tools(旧版)
执行后,在非 lo 接口下找 inet 字段值即可。例如:eth0: ... inet 192.168.1.100 netmask 255.255.255.0 ...
查公网 IP(需能访问外网)
内网命令查不到公网 IP,得靠外部服务返回:
curl ifconfig.me
其他等效命令还有:
curl icanhazip.com
curl api.ipify.org
如果系统没装 curl,可用 wget -qO- ifconfig.me 替代。
注意:这些结果反映的是出口 NAT 后的公网地址,不是本机直连地址。











