在虚拟机终端执行 ip addr 或者 hostname -I,立刻就能看到当前服务器的 IP 地址。 如果这条命令不好使,多半是系统里没装 ifconfig 或者网络模式没选对,下面我把各种情况一次说清。
虚拟机查看ip地址命令:先分清网络模式再操作
前脚刚搭好服务器,后脚就找不到 IP,这种事太常见了,但很多朋友没意识到,搞清楚虚拟机用了哪种网络模式,比记命令本身更重要,虚拟机的 IP 不是凭空出现的,它由虚拟化软件分配的虚拟网卡决定。
常见三种网络模式:
- NAT 模式:虚拟机通过宿主机上网,对外隐藏自身 IP,宿主机访问虚拟机需要用映射端口,虚拟机自己看到的 IP 通常是
168.x.x或0.2.x。 - 桥接模式:虚拟机直接连物理网络,和宿主机在同一局域网,此时虚拟机的 IP 和路由器分配的网段一致,局域网内其他设备也能直接访问它。
- 仅主机模式:虚拟机只能和宿主机通信,上不了外网,IP 一般是
168.56.x之类的独立网段。
这三种模式下,查看 IP 的命令一样,但看到的结果含义不同,如果你打算让局域网里的同事访问这台服务器,桥接模式是首选;如果只是自己本地开发测试,NAT 模式就够了。
| 网络模式 | IP 网段特征 | 宿主机能否直接访问 | 局域网其他设备能否访问 |
|---|---|---|---|
| NAT | 0.2.x / 192.168.x.x | 可以(需端口转发) | 不可以 |
| 桥接 | 与物理局域网相同 | 可以直接访问 | 可以直接访问 |
| 仅主机 | 168.56.x 等私有网段 | 可以直接访问 | 不可以 |
Linux 虚拟机查 IP 的完整操作步骤
多数服务器跑的是 Linux,这里以 Ubuntu 和 CentOS 为例,打开虚拟机终端,按顺序执行下面的命令。
用 ip 命令查看(推荐)
ip addr
执行后,重点找 eth0、ens33、ens160 这类网卡名称,下面那行 inet 开头的内容就是 IPv4 地址,格式类似:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.88.130/24 brd 192.168.88.255 scope global dynamic ens33
看到 168.88.130 就对了,斜杠后面的 24 代表子网掩码长度,不用管。
用 hostname 命令快速输出
如果只想看到干净的 IP,不想要那一大串网卡信息,用这条:
hostname -I
输出只有一行,168.88.130 10.0.2.15,注意这里可能显示多个 IP,第一个通常是对外通信用的主 IP,这个命令对 Ubuntu 和 CentOS 都适用。
ifconfig 没找到怎么办
执行 ifconfig 提示 command not found 的话,说明系统默认没装 net-tools 工具包,国内云服务器和精简版镜像经常这样,解决办法:
# Ubuntu / Debian sudo apt update && sudo apt install net-tools -y # CentOS / RHEL / Rocky sudo yum install net-tools -y
装完再执行 ifconfig,效果和 ip addr 类似,其实直接养成用 ip addr 的习惯就行,新系统都自带这个工具。
查看路由器分配的真实 IP
虚拟机如果是桥接模式,查看网关和路由信息也很有用:
ip route show
输出里 default via 192.168.1.1 那个地址就是网关,把虚拟机 IP 和网关对比一下,能确认虚拟机是否真的和宿主机在同一网段。
windows虚拟机服务器ip怎么查
Windows 服务器虚拟机查 IP 更简单,但很多人容易点错地方,这里不讲图形界面点来点去的办法,直接说效率最高的命令行方式。
打开命令提示符执行 ipconfig
在 Windows 虚拟机里,按 Win + R,输入 cmd 回车,在黑色窗口里敲:
ipconfig
里找 IPv4 地址,
以太网适配器 以太网:
IPv4 地址 . . . . . . . . . . . . : 10.0.2.15
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关 . . . . . . . . . . . . . : 10.0.2.1
如果你的 Windows 虚拟机开了多个虚拟网卡,会有多个“以太网适配器”段落,这个时候要分清哪个才是当前正在通信的网卡,判断标准很简单:默认网关不为空的那个,就是实际联网的。
远程桌面之前应该做的一件事
确认 IP 之后,建议顺手把防火墙放行远程桌面端口,很多朋友在 VMware 里装好了 Windows Server,宿主机 ping 得通却连不上远程桌面,十有八九是防火墙默认阻止了入站 RDP 流量,在 Windows 虚拟机里执行:
netsh advfirewall firewall set rule group="远程桌面" new enable=Yes
这条命令执行完,远程桌面就可以从宿主机或局域网其他电脑连过来了,操作路径在图形界面里是“控制面板 → 系统和安全 → Windows Defender 防火墙 → 允许的程序”,但命令行更快。
虚拟机没有ip地址怎么解决:静态ip配置思路
ip addr 执行完,发现 inet 后面什么地址都没有,或者只有 0.0.1,这说明虚拟机没从 DHCP 服务器拿到地址。这种情况十有八九是虚拟机的网络配置没对,不是服务器安装出了故障。
先做基础排查:
- 确认虚拟机软件里的网络适配器是“已连接”状态,而不是“断开连接”
- 检查虚拟网络编辑器里对应网卡的 DHCP 服务是否开启(VMware 在“编辑 → 虚拟网络编辑器”里看)
- 把虚拟机的网卡热插拔一次(在虚拟机设置里先禁用再启用)
都试过了还是不行,直接配静态 IP 最省心,以 Ubuntu 22.04 为例,编辑网络配置文件:
sudo nano /etc/netplan/00-installer-config.yaml
改成下面这样(IP 地址换成你自己的规划网段):
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.88.200/24
routes:
- to: default
via: 192.168.88.1
nameservers:
addresses:
- 223.5.5.5
- 114.114.114.114
然后执行 sudo netplan apply,再执行 ip addr 验证,注意网卡名要写对,刚才 ip addr 命令里看到的是啥名字就填啥。
CentOS / Rocky Linux 的配置路径不同,编辑:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
把 BOOTPROTO=dhcp 改成 BOOTPROTO=static,然后追加:
IPADDR=192.168.88.200
NETMASK=255.255.255.0
GATEWAY=192.168.88.1
DNS1=223.5.5.5
改完执行 sudo systemctl restart network 或重启虚拟机。
vmware虚拟机获取ip地址时容易踩的坑
vmware 里获取 IP 地址本身不难,难的是搞明白为什么宿主机 ping 不通虚拟机的 IP,这里集中说几个高频问题场景。
NAT 模式下宿主机 ping 不通虚拟机
这不是故障,是 NAT 模式的正常行为,NAT 模式下,虚拟机和外界的通信都经由宿主机转发,相当于虚拟机藏在宿主机背后,宿主机要访问虚拟机,正确做法是在 VMware 的“虚拟网络编辑器”里做端口映射,行业共识认为,NAT 模式更适合单机上网场景,不适合做服务器被外部访问的场景。
桥接模式选错了物理网卡
VMware 桥接默认绑定的物理网卡可能是无线网卡,也可能绑到了没插网线的网卡上,改法:虚拟机设置 → 网络适配器 → 自定义 → 选择 VMnet0 → 虚拟机菜单 → 虚拟网络编辑器 → 桥接到 → 选择当前有网的物理网卡,改完重启虚拟机网络服务,再执行 ip addr 看 IP 是否变化。
装了多个虚拟化软件导致网卡冲突
有的电脑同时装了 VMware 和 VirtualBox,两个软件各自创建虚拟网卡,会争抢网段,尤其是 VirtualBox 的 Host-Only 网卡默认也占 168.56.x 网段,容易把 VMware 的地址池搅乱,解决方案是手动调整其中一个软件的网段配置,避免 IP 段重叠。
云服务器和本地虚拟机的差异
如果用的是简米云、酷番云这类云服务器,不需要在虚拟机里查 IP,控制台实例列表里直接显示公网 IP 和内网 IP,你只是搭了个本地虚拟机,才需要在系统内执行命令查,这个区别很多人混着问,所以顺便说透:本地虚拟机查 IP 看网卡配置,云服务器查 IP 看控制台。
最后把核心结论再说一遍:执行 ip addr 是最通用、最快速的办法,Windows 用 ipconfig,Linux 用 ip addr。 查不到 IP 就检查网络模式和 DHCP 配置,实在不行直接设静态 IP,这几条路径能解决九成以上的问题。
虚拟机搭好服务器后怎么查看ip相关问题
为什么虚拟机执行 ip addr 显示的 IP 和宿主机的不一样?
这是正常的,NAT 模式下虚拟机 IP 是虚拟网卡分配的私有地址,与宿主机物理网卡的 IP 属于不同的网段,想让两者同网段,需要把虚拟机改为桥接模式,同时保证虚拟机和宿主机连的是同一个路由器或交换机。
虚拟机重启后 IP 地址变了怎么办?
虚拟机默认使用 DHCP 动态获取地址,每次重启可能被分配不同的 IP,需要固定不变的话,在虚拟机内配置静态 IP,同时确保该 IP 不在虚拟化软件 DHCP 自动分配的范围里,否则会冲突。
ip 命令和 ifconfig 显示结果哪个更准确?
两个都准确,只是 ip 命令输出的信息更完整,包括子网掩码、广播地址、状态标志,ifconfig 属于 net-tools 包,新版本 Linux 默认没装,且部分网络配置(如多路由场景)在 ifconfig 下显示不完整,建议以 ip addr 为准。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/770047.html





