VMware 虚拟机桥接(有线和无线桥接的步骤和区别)

1,717 阅读3分钟

虚拟机桥接概念

  • 桥接是将虚拟机直接接到(虚拟)网卡上.
  • 它让虚拟机和宿主机处于同一网段内, 并在网络中拥有平等的地位.
  • 内网环境中, 桥接使虚拟机可以作为服务端发布服务, 让内网其他主机(或虚拟机)直接访问.

0 配置环境

  • VMware workstation Pro 16
  • CentOS 8

1 有线桥接

有线桥接比较简单, 分为

  • Vmware 虚拟网络配置
# 1. 确保虚拟机已关闭
# 2. VMware 主界面上, 点击 "编辑" - "虚拟网络编辑器" - "更改设置", 列表中出现 VMnet0
# 3. 检查 VMnet 信息, 确保已桥接至 '正确的网卡':
   - 主机只有一块有线网卡, 可直接选自动, 或指定那块有线网卡;
   - 主机有有线或无线多块网卡, 必须指定要桥接的网卡(宿主机正在使用的网卡);
# 4. 点击 "确定", 关闭页面.
  • 虚拟机网络配置
# 1. VMware 主界面虚拟机列表上, 选中虚拟机, 右键选 "设置", 进入虚拟机设置
# 2. 选中 "网络适配器", 网络连接列表选择 "桥接模式" (选项'复制物理网络连接状态'不用打勾)
# 3. 点击 "确定", 关闭页面
  • 虚拟机静态IP配置
1. 打开并进入虚拟机, 修改网络配置文件
$ vim /etc/sysconfig/network-scripts/ifcfg-ens192
-----------------------------------------------------------------------------------------
TYPE="Ethernet"                    # 网卡类型:以太网
PROXY_METHOD="none"                # 代理方式:关闭
BROWSER_ONLY="no"                  # 只是浏览器:否
BOOTPROTO="none"                   // 网卡协议: dhcp[动态主机配置协议] 改为 none 或 static
DEFROUTE="yes"                     # 开启默认路由(一台主机有且只能有一块网卡开启默认路由)
IPV4_FAILURE_FATAL="no"            # ipv4致命错误检测:否
IPV6INIT="yes"                     # ipv6是否自动初始化:是 [无任何影响, 现在还没用到]
IPV6_AUTOCONF="yes"                # ipv6是否自动配置:是 [无任何影响, 现在还没用到]
IPV6_DEFROUTE="yes"                # ipv6是否为默认路由:是 [无任何影响, 现在还没用到]
IPV6_FAILURE_FATAL="no"            # ipv6致命错误检测:否 [无任何影响, 现在还没用到]
IPV6_ADDR_GEN_MODE="stable-privacy"# ipv6地址生成模型
NAME="ens192"                      # 网卡设备名称
UUID="a4d5ec3a-0717-42ce-b6a3-a4ec0afa373e"  # 通用唯一识别码, 区分和识别网卡
DEVICE="ens192"                    # 网卡设备名称, 必须和 NAME 一样
ONBOOT="yes"                       # 网卡开启开机启动

# set static IP 
IPADDR="192.168.0.201"             # 设置静态 IP (与宿主机在同一网段, 并且未被占用)
PREFIX="24"                        # 添加掩码
GATEWAY="192.168.0.1 "             # 添加网关 (连接路由器的话, 一般是路由器的 IP)
#DNS1="114.114.114.114"            # 直接添加 DNS1, 不推荐
PEERDNS=no                         # 建议禁止DNS覆盖,
                                   # 然后在 /etc/resolv.conf 文件中添加 DNS 服务器IP
-----------------------------------------------------------------------------------------

2. 修改 DNS 配置文件(诺在 ifcfg-ens33 文件直接添加 DNS, 可跳过)
$ vim ./etc/resolv.conf
-----------------------------------------------------------------------------------------
/etc/resolv.conf 文件
nameserver 114.114.114.114
nameserver 8.8.8.8
-----------------------------------------------------------------------------------------

3. 配置信息重载(生效)
# CentOS 8
$ nmcli c reload                    
$ nmcli c up ens33
# CentOS 7
$ systemctl restart network         
  • 测试
$ ifconfig                         # 查看 IP 是否是设置的 IP
$ ping www.baidu.com               # 检查网络
  • 路由器信息

# 登录路由器检查, 点击 "应用管理" - "IP 与 MAC绑定", 查看IP与MAC映射表, 可以看到
  - pc_yin    : 宿主机, 独立 MAC 地址, 192.168.0.x 网段, 主机号 14  (DHCP 分配)
  - pc_vm_yin : 虚拟机, 独立 MAC 地址, 192.168.0.x 网段, 主机号 201 (手动静态配置)

2 无线桥接

按上述有限连接的步骤完成后, 查看路由器, 可以看到

# IP 与 MAC 映射关系
  - mb_vm_yin(第一个) : 宿主机, 共享 MAC 地址, 192.168.0.x 网段, 主机号 20  (DHCP 分配)
  - mb_vm_yin(第二个) : 虚拟机, 共享 MAC 地址, 192.168.0.x 网段, 主机号 200 (手动静态配置)
# 解读
  - 宿主机和虚拟机共享 MAC 地址
  - 有线网卡桥接中, VMware 可以获取到虚拟机自己的虚拟 MAC 地址, 并在路由器上完成独立的 IP 与 MAC 映射
  - 无线网卡桥接中, VMware 无法获取到虚拟机 MAC 地址, 在路由器上两者共享无线网卡 MAC 地址, 映射不同 IP
  • [注意] 存在问题
# 初次配置后 
  - IP 与 MAC 映射关系如上, 虽然宿主机和虚拟机共享无线网卡 MAC, 但分别映射到不同 IP
  - 桥接网络运行正常
# 关机重启后
  - 路由器(可能)保留了 IP 和 MAC 映射记录, 如: D8-F2-CA-C5-BD-27 -> 192.168.0.200
  - 同时开启虚拟机(静态IP配置)和宿主机(DHCP分配), 两者 IP 均被设定为 192.168.0.200
  - 桥接网络运行不正常 (虚拟机或宿主机上不了网, ping 不了网站)
  • 解决方法
# 在完成有线桥接所有步骤之后, 添加宿主机静态 IP 配置
# 宿主机(Windows 10)静态 IP 配置
  - 打开 "控制面板" - "网络和 Internet" - "网络和共享中心"
  - 点击活动的网络连接, 一般为 "WLAN(WiFi名称)", 再点击 "属性", 
  - 选择 "Internet 协议版本4(TCP/IPv4)", 点击 "属性", 
  - 点击 "使用下面的 IP 地址", 配置 IP, 掩码, 网关(路由器IP)
  - 点击 "使用下面的 DNS 服务器地址", 配置两个 DNS 地址 (114.114.114.114 和 8.8.8.8)
  - 点击 "确定" - "关闭" - "关闭", 退出配置
# (重启)测试网络, 登录路由器检查恢复正常