在Linux系统中,查看IP地址是日常管理和运维中的基础操作,掌握多种方法有助于根据不同场景灵活选择,本文将详细介绍通过命令行查看系统IP地址的多种方式,涵盖传统工具与现代命令,并解析各命令的输出信息及适用场景。

使用ifconfig命令查看IP地址
ifconfig是传统的网络配置工具,源于BSD系统,在早期的Linux发行版中广泛使用,尽管在现代系统中逐渐被ip命令取代,但许多发行版仍通过net-tools包保留该命令。
安装ifconfig
若系统中未安装ifconfig,可通过以下命令安装:
- 基于Debian/Ubuntu的系统:
sudo apt update && sudo apt install net-tools
- 基于RHEL/CentOS的系统:
sudo yum install net-tools
基本使用
直接输入ifconfig命令将显示所有网络接口的详细信息,包括UP/DOWN状态、IP地址、子网掩码、MAC地址等。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fe4e:66a9 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:4e:66:a9 txqueuelen 1000 (Ethernet)
RX packets 1234 bytes 123456 (123.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 567 bytes 78901 (77.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet字段显示IPv4地址,inet6字段显示IPv6地址,ether字段为MAC地址。
查看特定接口
若仅需查看某个网络接口(如eth0)的信息,可加上接口名:
ifconfig eth0
启用/禁用接口
ifconfig还可临时修改接口状态,例如启用eth0:
sudo ifconfig eth0 up
禁用接口则使用:
sudo ifconfig eth0 down
使用ip命令查看IP地址
ip命令是iproute2包的一部分,是现代Linux系统中推荐的网络配置工具,功能更全面且输出更结构化,它逐渐取代了ifconfig、route、netstat等传统命令。
基本语法
ip命令的通用格式为ip [选项] [对象] [操作],查看IP地址主要涉及addr对象。
查看所有接口IP地址
输入以下命令可显示所有网络接口的IP地址信息:

ip addr
或简写为:
ip a
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:4e:66:a9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe4e:66a9/64 scope link
valid_lft forever preferred_lft forever
输出中,lo为回环接口,eth0为以太网接口。inet后为IPv4地址及子网掩码(如/24表示255.255.255.0),inet6后为IPv6地址。
查看特定接口IP地址
若仅需查看eth0的IP地址,可使用:
ip addr show eth0
或简写为:
ip a show eth0
查看简洁IP信息
若仅需显示IP地址和接口名,可结合grep命令过滤:
ip a | grep 'inet ' | awk '{print $2}'
输出示例:
0.0.1/8 192.168.1.100/24 fe80::a00:27ff:fe4e:66a9/64
其他常用操作
- 添加临时IP地址:
sudo ip addr add 192.168.1.200/24 dev eth0
- 删除临时IP地址:
sudo ip addr del 192.168.1.200/24 dev eth0
使用hostname命令查看IP地址
hostname命令主要用于查看或设置系统主机名,但结合-I选项可快速显示所有接口的IPv4地址(不含IPv6)。
基本使用
hostname -I
输出示例:
168.1.100 10.0.0.1
该命令适用于仅需快速获取IPv4地址的场景,输出简洁,但无法显示子网掩码、MAC地址等详细信息。

查看主机名及IP
若需同时查看主机名和IP地址,可结合其他命令:
echo "Hostname: $(hostname)"; echo "IP: $(hostname -I)"
使用nmcli命令查看IP地址
nmcli是NetworkManager的命令行工具,适用于需要管理网络连接的场景(如NetworkManager控制的系统),它不仅能查看IP地址,还能管理连接配置、DHCP等。
查看所有连接的IP地址
nmcli connection show
该命令列出所有网络连接,包括活动和非活动连接,若需查看活动连接的详细信息:
nmcli connection show --active
查看特定连接的IP配置
例如查看eth0连接的IP地址:
nmcli connection show "eth0" | grep ipv4.addresses
或更详细的信息:
nmcli connection show "eth0"
查看实时网络状态
nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 wlan0 wifi disconnected -- lo loopback unmanaged --
使用iproute2工具包的其他命令
iproute2工具包还包含ss、tc等命令,可通过组合实现更复杂的网络查看需求,结合ip和ss查看监听端口对应的IP地址:
ss -tulnp | grep ':80'
不同场景下的工具选择
- 快速查看IPv4地址:优先使用
hostname -I,输出简洁高效。 - 查看详细网络信息:选择
ip addr或ifconfig,可获取IP、子网掩码、MAC地址、接口状态等。 - NetworkManager管理环境:使用
nmcli,适合动态配置和连接管理。 - 脚本自动化:推荐
ip命令,输出结构化,便于脚本解析。
注意事项
- 权限问题:部分命令(如
ifconfig的启用/禁用接口)需要sudo权限。 - 工具差异:
ifconfig在某些现代系统中可能已默认卸载,而ip命令是主流选择。 - 临时配置:通过
ifconfig或ip添加的IP地址为临时配置,重启后会丢失;若需永久配置,需修改网络配置文件(如/etc/network/interfaces或NetworkManager连接文件)。
通过以上方法,可全面掌握Linux系统中查看IP地址的多种技巧,满足日常管理和运维需求,根据实际场景选择合适的工具,能更高效地完成网络配置与故障排查任务。
















