配置VM在Linux上的网络几种模式应用场景及实例。

78 阅读6分钟

配置VM在Linux上的网络:桥接、NAT、仅主机模式详解

1. 引言

本文旨在为Linux新手提供一份快速、直接、可操作的VM网络配置指南。通过整理VMware三种网络模式的配置方案,帮助你快速解决"为什么其他机器无法访问VM"、"为什么VM无法上网"等常见问题。文章不涉及广告推广,只提供可直接复制粘贴的配置命令,让你少走弯路,专注于技术本身。


2. VMware基础介绍

2.1 基本信息

表格

项目详情
软件名称VMware Workstation Pro
最新版本17.5.0 (截至2023年)
官网地址www.vmware.com/products/wo…
下载地址官网下载页面
适用系统Windows 10/11, Linux

2.2 安装步骤(以Windows 10为例)

  1. 下载安装包后双击运行
  2. 接受许可协议 → 选择"典型安装"
  3. 安装完成后重启电脑
  4. 首次启动时会提示激活(免费试用30天,企业版需购买)

💡 注意:安装过程中无需额外安装VMware Tools(Linux VM安装后可单独安装)

2.3 VMware三种网络模式对比

表格

模式网络拓扑适用场景优点缺点
桥接模式VM直接接入物理网络需要被局域网其他设备访问(如服务器测试)• 与宿主机同网段 • 其他设备可直接访问• 占用IP资源 • 需手动配置IP
NAT模式VM通过宿主机NAT上网日常开发/办公(VM需上网但无需被访问)• 自动获取IP • 无需额外配置• 无法被其他设备访问 • 需端口映射
仅主机模式VM与宿主机独立虚拟网络安全测试/内网隔离环境• 完全隔离外部网络 • 无安全风险• 无法访问外网 • 仅限宿主机通信

3. 三种网络模式配置示例

环境说明

  • 宿主机:Windows 10 (IP: 192.168.110.172)
  • VM:CentOS 7.9 (Linux)
  • 物理网卡:Realtek PCIe GbE Family Controller
  • 局域网网关:192.168.110.1
  • 子网掩码:255.255.255.0

3.1 桥接模式:让VM与宿主机同网段(其他设备可访问)

场景:需要让192.168.110.0/24网段的其他设备(如手机、其他电脑)直接访问VM

步骤 1:配置VMware虚拟网络
  1. 打开VMware → 点击"编辑" → "虚拟网络编辑器"
  2. 选择VMnet0 → 选择"桥接模式" → 桥接到Realtek PCIe GbE Family Controller
  3. 取消勾选 "复制物理网络连接状态"(避免主机断网时VM也断网)
  4. 点击"应用" → "确定"
步骤 2:配置VM的Linux网络

bash

编辑

# 覆盖网络配置文件
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3e653f1d-f955-4d4e-82e7-259b0b5399cd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.110.100
GATEWAY=192.168.110.1
NETMASK=255.255.255.0
DNS1=192.168.110.1
EOF

# 重启网络服务
systemctl restart network
步骤 3:验证

bash

编辑

# 查看IP
ip addr show ens33

# 测试连通性
ping 192.168.110.172    # 宿主机
ping 192.168.110.1      # 网关
ping 8.8.8.8            # 外网

✅ 结果:VM的IP为192.168.110.100,同网段其他设备可直接通过ping 192.168.110.100访问


3.2 NAT模式:VM通过宿主机上网(无需被其他设备访问)

场景:VM只需上网(如安装软件),无需被局域网设备访问

步骤 1:配置VMware虚拟网络
  1. 打开VMware → 点击"编辑" → "虚拟网络编辑器"
  2. 选择VMnet8 → 保持"NAT模式"(默认已设置)
  3. 点击"应用" → "确定"
步骤 2:配置VM的Linux网络(自动获取IP)

bash

编辑

# 确保配置为DHCP
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3e653f1d-f955-4d4e-82e7-259b0b5399cd"
DEVICE="ens33"
ONBOOT="yes"
EOF

# 重启网络服务
systemctl restart network
步骤 3:验证

bash

编辑

# 查看IP(应为192.168.80.x)
ip addr show ens33

# 测试外网
ping 8.8.8.8

✅ 结果:VM通过宿主机NAT上网,但无法被其他设备访问(需端口映射才可被访问)


3.3 仅主机模式:VM与宿主机隔离(无法访问外网)

场景:需要安全测试环境(如渗透测试),VM与外部网络完全隔离

步骤 1:配置VMware虚拟网络
  1. 打开VMware → 点击"编辑" → "虚拟网络编辑器"
  2. 选择VMnet1 → 选择"仅主机模式"
  3. 点击"应用" → "确定"
步骤 2:配置VM的Linux网络

bash

编辑

# 设置仅主机模式IP
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3e653f1d-f955-4d4e-82e7-259b0b5399cd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.213.10
NETMASK=255.255.255.0
EOF

# 重启网络服务
systemctl restart network
步骤 3:验证

bash

编辑

# 查看IP(应为192.168.213.x)
ip addr show ens33

# 测试宿主机连通性
ping 192.168.213.1  # 宿主机VMnet1 IP

# 测试外网(应失败)
ping 8.8.8.8

✅ 结果:VM与宿主机互通(IP 192.168.213.10),但无法访问外网


4. 总结与建议

4.1 三种模式选择指南

表格

需求推荐模式关键配置
需要被局域网其他设备访问桥接模式静态IP + 桥接到物理网卡
VM只需上网(无需被访问)NAT模式保持DHCP(默认)
需要安全隔离环境仅主机模式设置静态IP(192.168.213.x)

4.2 常见问题解决

  • "VM无法上网"  → 检查NAT模式是否启用(VMnet8)
  • "其他机器无法访问VM"  → 确认是否为桥接模式 + 同网段IP
  • "IP冲突"  → 选择未被占用的IP(如192.168.110.100
  • "防火墙拦截"  → 临时关闭防火墙测试:systemctl stop firewalld

4.3 最佳实践

  1. 桥接模式:使用192.168.110.100-200范围IP,避免与现有设备冲突
  2. NAT模式:无需手动配置,除非需要固定IP
  3. 仅主机模式:IP范围固定为192.168.213.0/24
  4. 所有模式:配置后务必执行systemctl restart network

💡 技术提示

  • VMware的VMnet0(桥接)、VMnet8(NAT)、VMnet1(仅主机)是固定名称,不要随意修改
  • Linux的ens33是网卡名,若为eth0需替换为对应名称(ip addr查看)

本文无任何广告,仅为技术交流。通过本指南,你已掌握VM网络配置的核心方法。如需进一步验证,可使用traceroutenmap扫描网络。网络配置是基础但关键的技能,希望这份指南能为你节省大量调试时间。