虚拟机配置内网IP地址的核心方法是通过桥接模式或NAT模式,在虚拟机内手动指定与宿主机同一网段的静态IP,从根本上避免DHCP自动分配带来的地址漂移问题。
搞清楚虚拟机的三种网络模式再动手
很多人在配置内网IP时失败,往往是一开始就选错了网络模式,VMware Workstation和VirtualBox虽然界面不同,但底层原理非常接近。
桥接模式:让虚拟机像一台独立主机
桥接模式下,虚拟机直接接入宿主机所在的物理局域网,相当于在交换机上多插了一台设备,此时虚拟机需要配置和宿主机完全相同的网段、不同的IP地址、相同的网关和DNS。
适合场景:
- 需要被局域网内其他设备直接访问(如提供Web服务、文件共享)
- 需要与同一Wi-Fi下的打印机、NAS交互
- 模拟真实物理机在网络中的行为
NAT模式:共享宿主机出口上网
NAT模式下,虚拟机位于一个私有的虚拟子网中,通过宿主机进行地址转换后访问外部网络,宿主机相当于虚拟机的路由器,局域网其他设备无法主动访问NAT模式下的虚拟机。
适合场景:
- 只需要虚拟机上网,不需要被外部设备访问
- 需要隔离虚拟机与物理局域网(如测试恶意软件)
- 没有路由器管理权限,无法为虚拟机预留IP
仅主机模式:与宿主机组成私密网络
仅主机模式创建了一个完全隔离的虚拟网络,只有宿主机和虚拟机在这个网络中通信,无法访问外网,常用于测试网络协议或做安全实验。
选择的逻辑很明确:如果目的是让局域网中其他电脑也能访问到这台虚拟机,选桥接模式;如果只是自己调试用,选NAT模式就够了。
虚拟机怎么配置内网IP?桥接模式实操详解
这里以VMware Workstation为例,VirtualBox操作几乎相同,假设宿主机IP是192.168.1.10,网关是192.168.1.1。
第一步:将虚拟机网络适配器改为桥接模式
- 关闭虚拟机操作系统
- 点击“虚拟机”菜单,选择“设置”
- 在“网络适配器”选项中,选中“桥接模式”
- 不要勾选“复制物理网络连接状态”,这会影响Wi-Fi环境下的网络切换
第二步:开启虚拟机,进入系统修改静态IP
以CentOS/RHEL系列为例,使用nmcli命令是最规范的方式:
nmcli con show # 记录下连接名称,通常为 ens160 或 ens33 nmcli con mod ens160 ipv4.method manual \ ipv4.addresses 192.168.1.88/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 223.5.5.5 nmcli con up ens160
以Ubuntu/Debian系列为例(18.04之后版本),直接修改netplan配置:
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
addresses: [192.168.1.88/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 114.114.114.114]
然后执行 sudo netplan apply 使配置生效。
第三步:验证配置是否成功
- 在虚拟机内执行
ip addr确认地址绑定正确 - 执行
ping 192.168.1.1验证网关连通性 - 执行
ping 8.8.8.8检查外网联通 - 在宿主机终端执行
ping 192.168.1.88测试局域网互通
如果宿主机能ping通虚拟机,局域网其他设备也能ping通,配置就完成了。
Windows宿主机桥接模式的隐蔽坑位
Windows环境下很多人都遇到过这个问题:在VMware里明明选了桥接模式,虚拟机就是获取不到IP,这背后往往是Windows的虚拟网卡和物理网卡之间的桥接绑定失效导致的。
如果你使用的是Windows宿主机,建议检查一下“VMware Bridge Protocol”是否绑定在正确的物理网卡上:
- 打开“控制面板” → “网络和 Internet” → “网络连接”
- 右键当前在用物理网卡(无线或有线),选择“属性”
- 勾选“VMware Bridge Protocol”
- 若同时存在虚拟网卡VMnet1、VMnet8,将它们手动禁用,避免路由表冲突
不少老版本VMware在做桥接时默认绑定到虚拟网卡,导致虚拟机找不到真实网络,这个操作能解决大多数莫名其妙的问题。
NAT模式下的静态IP配置技巧
在NAT模式下,建议通过设置DHCP保留来达到类似静态IP的效果,因为NAT模式的核心是宿主机做网关,虚拟机处于VMnet8网段(通常为192.168.xxx.0/24)。
以VirtualBox为例:
- 打开“文件” → “全局设定” → “网络”
- 选中NAT网络,点击编辑
- 查看“网络CIDR”和“DHCP服务器地址”
- 然后在虚拟机内将IP设置为该网段中未被DHCP租约占用的地址即可
注意NAT模式下,虚拟机地址必须保持在VMnet8同一网段,不能随意配置成192.168.1.x。 否则网关不可达,常见VMnet8网段如192.168.56.0/24,配置192.168.56.100/24就能正常通信。
让虚拟机内网IP永久生效
配置完成后,还面临重启失效的风险,使用systemd-networkd的服务在多数系统中已默认启用,不设置自启大概率也不会丢,为了稳妥起见:
- 关闭系统默认的DHCP客户端服务(如
dhclient、NetworkManager),避免双驱动冲突 - 检查
/etc/resolv.conf,确认DNS指向正确 - 在宿主机的路由器管理页面,设置IP/MAC绑定,将虚拟机网卡的MAC地址与指定IP绑定
行业共识指出,IP/MAC绑定的方式比虚拟机内的静态配置更可靠,因为即使虚拟机系统重装或配置丢失,路由器仍会按MAC地址优先分配指定IP。
VMware虚拟机内网IP设置不对?按这个顺序排查
如果配置完成但网络不通,请按以下优先级排查:
- 网卡模式是否切换成功:重新查看虚拟机的网络适配器设置
- 宿主机网络环境是否变动:家里换了Wi-Fi、公司改了网段都会导致配置失效
- 虚拟机的防火墙是否拦截ping:尝试临时关闭firewalld或iptables进行测试
- 网段、网关是否匹配宿主机:用
ip route查看虚拟机路由表 - MAC地址是否冲突:同一局域网内两台设备MAC重复会导致断断续续
大多数情况下,上述检查做完就能解决80%以上的通联问题,剩下20%往往在物理层比如无线网卡的AP隔离功能,这种情况建议将宿主机改为有线连接,桥接效果会更稳定。
常见问题速答
虚拟机的内网IP地址总是变怎么办?
在桥接模式下,进入虚拟机系统将网卡配置改为静态IP(参考上文nmcli或netplan步骤);在NAT模式下,在VirtualBox/VMware的DHCP设置中为虚拟机MAC地址绑定固定IP,两者选一即可,不要同时设置。
配置静态IP后虚拟机无法上外网?
先检查网关是否填写正确,桥接模式的网关必须和宿主机一致(通常为路由器的LAN口地址),NAT模式的网关则是VMnet8网段的默认网关地址(通常xxx.xxx.xxx.2),再执行 ping 223.5.5.5 看是否通;不通则检查DNS和路由表。
用桥接模式还是NAT模式更省心?
如果只是开发调试代码、搭建测试环境,NAT模式最省心,不需要关心局域网路由规则,配置一次基本不用再动,如果虚拟机需要对外提供HTTP、SSH服务,或者需要被同事直接访问,桥接模式是唯一合理的选项,但前提是你对网络基础有一定了解,两者选型的核心其实就一句话:需要被别人找到,就桥接;不需要,就NAT。