在Linux系统管理中,尤其是虚拟机环境下的CentOS系统,查看IP地址是一项基础且频繁操作,无论是网络配置、服务部署还是故障排查,准确获取IP信息都是解决问题的前提,本文将系统介绍在CentOS虚拟机中查看IP地址的多种方法,涵盖命令行工具、配置文件解析及网络管理工具等场景,帮助用户根据实际需求选择最合适的方案。

使用ip addr命令:现代Linux系统的首选方法
ip命令是iproute2工具包的核心组件,相较于传统的ifconfig命令,ip命令功能更全面、输出更规范,已成为现代Linux系统查看网络信息的首选,在CentOS 7及以上版本中,ip命令已默认安装,无需额外配置。
基本语法与使用
要查看网络接口的IP地址信息,可直接执行以下命令:
ip addr
该命令会显示系统中所有网络接口的详细信息,包括接口状态(UP/DOWN)、MAC地址、IP地址(IPv4/IPv6)、子网掩码、广播地址等,输出结果可能如下:
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe12:3456/64 scope link
valid_lft forever preferred_lft forever
ens33为以太网接口,inet行显示IPv4地址168.1.100,子网掩码为/24(即255.255.255.0),广播地址为168.1.255。
精简输出与筛选
若仅需查看特定接口的IP地址,可结合show或list参数及接口名,
ip addr show ens33 # 查看ens33接口的详细信息
若仅需IP地址本身,可通过grep和awk命令过滤输出:
ip addr show ens33 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1
该命令会直接输出ens33接口的IPv4地址(如168.1.100)。
使用ifconfig命令:传统工具的兼容性方案
ifconfig是传统的网络配置工具,在CentOS 6及更早版本中默认安装,虽然CentOS 7+已将其列为废弃工具(但仍可通过yum install net-tools安装),但在部分兼容场景下仍可能用到。
基本使用
执行以下命令查看所有接口的IP信息:
ifconfig
输出结果与ip addr类似,但格式略有不同。

ens33: 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::20c:29ff:fe12:3456 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:12:34:56 txqueuelen 1000 (Ethernet)
RX packets 1234 bytes 123456 (123.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 567 bytes 789012 (770.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet行显示IPv4地址及子网掩码,broadcast为广播地址。
查看特定接口
若仅关注ens33接口,可执行:
ifconfig ens33
查看网络配置文件:静态IP与动态IP的确认
在CentOS虚拟机中,IP地址可能通过静态配置或DHCP动态获取,通过查看网络配置文件,可直接确认IP地址的来源及详细参数。
CentOS 7及以上的NetworkManager配置
CentOS 7+默认使用NetworkManager管理网络,配置文件通常位于/etc/sysconfig/network-scripts/目录下,命名规则为ifcfg-接口名(如ifcfg-ens33),查看文件内容:
cat /etc/sysconfig/network-scripts/ifcfg-ens33
若IP地址为静态配置,文件中会包含类似以下内容:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=ens33 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DEVICE=ens33 ONBOOT=yes
BOOTPROTO=static表示静态IP,IPADDR为配置的地址;若BOOTPROTO=dhcp,则表示通过DHCP动态获取IP。
CentOS 6及更早版本的配置文件
CentOS 6的网络配置文件同样位于/etc/sysconfig/network-scripts/,但格式略有差异,静态IP配置示例:
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
使用hostname或hostname -I命令:快速获取IP
若仅需快速获取本机已分配的IP地址(不关心接口细节),可通过hostname命令结合参数实现。
hostname -I命令
执行以下命令会直接输出所有已配置的IPv4地址,空格分隔:
hostname -I
例如输出:168.1.100 10.0.0.1,表示系统同时配置了两个IP地址。

hostname -i命令
该命令会返回所有接口的IP地址(包括IPv6),但可能包含回环地址(127.0.0.1),需结合实际需求筛选:
hostname -i
排查常见问题:IP地址获取失败时的解决方案
在虚拟机环境中,有时会遇到IP地址无法获取或显示为254.x.x的情况,通常可通过以下步骤排查:
检查网络接口状态
使用ip link或ifconfig命令确认接口是否已启动(UP状态):
ip link show ens33 # 确保状态为UP
若接口为DOWN状态,可通过以下命令启动:
ip link set ens33 up
检查DHCP服务
若配置为DHCP获取IP,但未获取到地址,可能是虚拟机网络模式(如NAT、桥接)配置错误,或DHCP服务器未正常运行,可尝试重启网络服务:
systemctl restart NetworkManager # CentOS 7+ service network restart # CentOS 6
检查防火墙与SELinux
防火墙或SELinux可能阻止网络服务,可通过以下命令临时关闭测试:
systemctl stop firewalld setenforce 0
若问题解决,需调整防火墙规则或SELinux策略,而非长期关闭服务。
不同场景下的IP查看方法选择
- 快速查看:使用
hostname -I命令,直接获取所有IPv4地址; - 详细信息:使用
ip addr命令,查看接口状态、MAC地址、子网掩码等完整信息; - 静态IP确认:直接查看
/etc/sysconfig/network-scripts/ifcfg-接口名文件; - 兼容旧系统:使用
ifconfig命令(需安装net-tools)。
在虚拟机管理中,根据CentOS版本及网络配置方式选择合适的方法,可高效获取IP地址信息,为后续操作提供基础支持,掌握常见问题的排查思路,能够快速解决网络连接异常问题,保障虚拟机的稳定运行。



















