在Linux虚拟机环境中,准确获取IP地址是进行远程连接、网络配置及服务部署的基础前提。核心上文归纳是:查看虚拟机Linux IP地址最权威且通用的方法是使用ip addr或ifconfig命令,但获取到的具体IP地址数值及其有效性,完全取决于虚拟机的网络适配器模式(如NAT、桥接模式)以及虚拟机内部的DHCP服务状态。 仅仅执行命令是不够的,理解网络层级关系和配置正确的网段才是解决“连不上”问题的关键。

常用命令行查看方法详解
在Linux终端中,获取IP地址主要通过读取网络接口的配置信息来实现,现代Linux发行版(如CentOS 7+、Ubuntu 18.04+)默认推荐使用iproute2工具集,而传统的net-tools工具集虽然被弃用,但依然广泛使用。
使用ip addr命令(推荐)
这是目前最标准、功能最强大的命令,在终端中输入ip addr或简写ip a,系统会列出所有网络接口的详细信息,输出结果通常包含lo(回环接口)和eth0、ens33或enp0s3(以太网接口)。
- 关键信息解读:请重点关注以太网接口下的
inet字段。inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0中,168.1.100即为该虚拟机的IP地址,/24代表子网掩码。 - 优势:该命令内置于内核,无需额外安装软件包,显示信息更为全面,包括IPv6地址和硬件地址(MAC地址)。
使用ifconfig命令(传统)
对于习惯旧版本Linux的用户,ifconfig依然直观,执行该命令后,查找eth0或ens33区块中的inet addr即可。
- 注意事项:在最小化安装的CentOS 8或Ubuntu系统中,可能预装未包含此命令,若提示command not found,需执行
yum install net-tools或apt install net-tools进行安装。
快速提取IP技巧
如果仅需要获取纯数字IP用于脚本编写,可以使用ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1,这条组合命令通过过滤文本,直接输出IP地址,去除了所有冗余信息,体现了命令行处理的高效性。
虚拟机网络模式对IP获取的决定性影响
很多用户即使获取了IP地址,却发现无法在宿主机Ping通,这通常是因为不理解虚拟机软件(如VMware或VirtualBox)的网络模式。网络模式决定了虚拟机处于哪个网段,进而决定了IP地址的前缀。

NAT模式(网络地址转换)
这是最常用的模式,适合虚拟机需要上网但不需要被局域网其他设备访问的场景。
- IP特征:在VMware中,NAT模式默认对应VMnet8虚拟网卡,虚拟机获取的IP通常是
168.x.x段,且由VMware自带的DHCP服务分配。 - 连接性:宿主机可以直接连接此IP,但宿主机所在局域网内的其他物理机无法直接访问该IP。
桥接模式
此模式将虚拟机视为宿主机所在物理网络中的一台独立设备。
- IP特征:虚拟机将直接从物理路由器获取IP地址,其IP段与宿主机完全一致(例如宿主机是
168.1.5,虚拟机可能是168.1.6)。 - 连接性:局域网内任何设备均可访问该虚拟机,若获取不到IP,通常是因为物理路由器的DHCP地址池已满或MAC地址过滤限制。
仅主机模式
此模式创建了一个完全隔离的网络环境,仅包含宿主机和虚拟机。
- IP特征:在VMware中对应VMnet1,IP地址通常是固定的私有网段。
- 用途:适用于高安全性测试,此时虚拟机无法直接连网,IP地址仅用于宿主机与虚拟机之间的内部通信。
故障排查与专业解决方案
当执行命令后仅看到0.0.1(回环地址)而看不到以太网IP,或者看到IP却无法通信时,需要遵循以下排查逻辑。
网络接口未启动
如果ip addr显示接口状态为DOWN,则说明网卡被关闭,解决方法是执行ip link set eth0 up(将eth0替换为实际接口名)或修改网络配置脚本确保开机自启,在CentOS中,需检查/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOT=yes。

DHCP服务未获取到地址
若配置为动态获取IP(DHCP),但未分配到地址,系统可能显示IPv4地址为空,此时应尝试重启网络服务,在CentOS 7使用systemctl restart network,在Ubuntu使用netplan apply或systemctl restart NetworkManager,如果依然失败,请检查虚拟机软件的DHCP服务是否开启(编辑->虚拟网络编辑器)。
配置静态IP以提升稳定性
在生产环境中,依赖DHCP可能导致IP变动,造成服务不可用,专业的做法是配置静态IP。
- 操作思路:编辑网卡配置文件,将
BOOTPROTO=dhcp改为static,并手动填入IPADDR、NETMASK、GATEWAY及DNS1,配置完成后重启网络服务即可生效,这能确保虚拟机重启后IP地址恒定不变,符合服务器运维的稳定性要求。
相关问答
问题1:为什么我在虚拟机里能看到IP,但是Xshell连接不上?
解答: 这种情况通常有三个原因,第一,SSH服务未开启,请检查虚拟机内是否执行了systemctl start sshd并设置为开机自启;第二,IP地址错误,如果你使用的是NAT模式,请确保连接的是VMnet8网段的IP,而不是物理网段的IP;第三,防火墙拦截,Linux内部的防火墙(如firewalld或iptables)可能禁止了22端口的入站连接,可以尝试临时关闭防火墙进行验证。
问题2:虚拟机重启后IP地址变了,怎么保持不变?
解答: 这是因为默认使用了DHCP动态分配,为了保持IP不变,必须配置静态IP,你需要编辑网络配置文件(例如/etc/sysconfig/network-scripts/ifcfg-ens33),将BOOTPROTO修改为static,并手动指定IPADDR(你想要的固定IP)、NETMASK(子网掩码)、GATEWAY(网关地址)和DNS1,保存并重启网络服务后,该IP将被固定下来,不再随重启而改变。
能帮助你准确掌握查看和配置虚拟机IP的方法,如果你在具体的Linux发行版操作中遇到参数不一致的情况,欢迎在评论区分享你的系统版本,我们可以针对性地探讨配置细节。

















