VMWare Workstation 17 Pro 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式

博文目录


网络模式

  • 桥接模式:
    • 主机与虚拟机对等, 虚拟机注册到主机所在的局域网, 会占用该网络的IP
    • 该局域网内的所有机器, 包括主机和其他机器和所有虚拟机, 均可互相访问
    • 虚拟机可以访问互联网
  • 网络地址转发(NAT)模式:
    • 可以认为是在主机下建立了一个虚拟局域网, 虚拟机注册到该网络, 不会占用主机所在局域网的IP
    • 虚拟机可通过主机访问互联网
    • 主机和所有虚拟机可以互相访问
    • 虚拟机可以访问主机局域网中的其他机器. 但是反过来不行(貌似NAT-PAT端口多路复用(不同端口指向不同虚拟机)可以实现该功能)
  • 仅主机模式:
    • 和NAT类似
    • 但是虚拟机只能和主机互相访问
    • 不能通过主机访问互联网
    • 也不能访问主机局域网中的其他机器

配网要求

作为一名 Java 从业者, 通常需要主机与虚拟机具有如下的网络特点

  • 主机与各虚拟机之间能够互相访问
  • 各虚拟机之间能够互相访问
  • 虚拟机能够访问互联网
  • 每一台虚拟机的IP地址一经配置则固定不变, 即使主机所在网络发生变化, 也不能影响虚拟机的IP
    • 肯定是需要手动配置地址的, DHCP 自动地址会变来变去, 导致虚拟机上部署的服务不可用
    • 很多中间件有高可用, 需要互相配置IP地址, 一旦虚拟机IP发生变化, 修改起来会很麻烦

这样看来桥接模式不符合第四点, 仅主机模式模式不符合第三点, 只有NAT模式符合要求

CentOS

  • CentOS Stream 9 之前, 网络配置在 /etc/sysconfig/network-scripts 下, 格式是 ifcfg
  • CentOS Stream 9, 网络配置在 /etc/NetworkManager/system-connections 下, 格式是 keyfile, 就是 ini 配置文件的格式

CentOS Stream 9 也没有了以前配置网络的命令

  • service network start/restart/status
  • systemctl start/restart/status network

CentOS Stream 9 重新加载网络配置

  • nmcli c reload
  • nmcli c up ens160, 这里的 ens160 是网卡名, 可根据实际情况更改

CentOS Stream 9 之前的配置大致是这个样子

TYPE=Ethernet # 网络类型为以太网
BOOTPROTO=static # 手动分配IP地址
DEVICE=ens32 # 网卡设备名,设备名和文件名一定要一致
ONBOOT=yes # 网卡随网络服务启动
IPADDR=192.168.1.201 # 网卡IP地址, 要和Windows在同一个网段, 即192.168.1.*
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 默认网关
DNS1=8.8.8.8 # DNS,8.8.8.8为Google提供的免费DNS服务器IP地址

CentOS Stream 9 的默认配置如下, 可以看到默认的 ipv4 配置是自动获取 IP 地址, 如果有 DHCP 服务, 则该配置的虚拟机在启动后, 应该能自动拿到 IP 地址, 可以直接访问互联网

[connection]
id=ens160
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=etherent
autoconnect-priority=-999
interface-name=ens160
timestamp=1692376766

[ethernet]

[ipv4]
method=auto

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

下面的测试均以 CentOS Stream 9 为例, 在 CentOS Stream 9 下的默认配置与效果, 在其他版本下不一定一致, 但大致相同

DHCP

DHCP 服务可以按照一定的规则和限制给客户端动态分配 IP 地址

NAT 模式和仅主机模式, 内置了 DHCP 服务, 桥接模式则使用主机所在局域网的 DHCP 服务, 即这三种网络模式的虚拟机, 如果系统配置了自动获取 IP 地址, 则虚拟机启动后就能获得一定限制内随机的 IP 地址, 每次启动后, 分配的 IP 地址可能会发生变化

扫描二维码关注公众号,回复: 17008403 查看本文章

虚拟网络

本机目前只连接了无线, 所以本次实验以无线网卡为准

在这里插入图片描述

在控制面板中, 我们可以看到网卡的信息, 以太网是有线网卡(本次暂无), WLAN 是无线网卡

当安装了 VMWare Workstation 后, 会多出来 VMnew1 和 VMnet8 两张虚拟网卡

在 VMWare Workstation 的 虚拟网络编辑器 中可以查看和配置这些虚拟网络

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

VMnet1 对应的是仅主机模式, VMnet8 对应的 NAT 模式, VMnet0 对应桥接模式, 据说桥接模式直接使用了主机网卡, 所以不会在控制面板的网络适配器中显示

桥接模式

默认情况下, 我们用桥接模式创建的 CentOS Stream 9 虚拟机可以直接访问互联网

虽然桥接模式没有 DHCP, 但是桥接模式会使用主机所在局域网的 DHCP 服务

桥接模式下, 虚拟机和主机对等, 应当在相同的网段, 有相同的子网掩码, 所以要配置虚拟机网络, 需要先了解主机当前的网络

在 cmd 中执行 ipconfig 可知

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   IPv6 地址 . . . . . . . . . . . . : 2409:8a0c:247:8f70:46f:6c47:8c14:77da
   临时 IPv6 地址. . . . . . . . . . : 2409:8a0c:247:8f70:c96e:29a0:184f:3906
   本地链接 IPv6 地址. . . . . . . . : fe80::9ce9:cfa2:bedb:b6cc%3
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.2
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : fe80::1%3
                                      192.168.1.1

在这里插入图片描述

在局域网连接中查看信息可知

SSID:	CMCC-R7tU-5G
协议:	Wi-Fi 6 (802.11ax)
安全类型:	WPA2-个人
制造商:	MediaTek, Inc.
描述:	MediaTek Wi-Fi 6 MT7921 Wireless LAN Card
驱动程序版本:	23.32.2.553
网络频带:	5 GHz
网络通道:	48
链接速度(接收/传输):	1201/1201 (Mbps)
IPv6 地址:	2409:8a0c:247:8f70:46f:6c47:8c14:77da
本地链接 IPv6 地址:	fe80::9ce9:cfa2:bedb:b6cc%3
IPv6 DNS 服务器:	fe80::1%3 (未加密)
IPv4 地址:	192.168.1.2
IPv4 DNS 服务器:	192.168.1.1 (未加密)

汇总可知主机网络信息如下

  • 默认网关: 192.168.1.1
  • 子网掩码: 255.255.255.0
  • 主机地址: 192.168.1.2
  • DNS服务器地址: 192.168.1.1

另外, 我的手机也连接了同一个局域网, 手机的地址是 192.168.1.3

所以桥接模式的虚拟机地址可以配置为 192.168.1.4 ~ 192.168.1.254 中和其他设备不冲突的任何一个地址, 具体可以百度网络相关方面的知识

我们以手动配置 192.168.1.129/24 为例, /24 就是子网掩码 255.255.255.0

默认配置

在这里插入图片描述

首先查看虚拟网络编辑器中 VMnet0 的配置, 应将其桥接至正确的物理无线网卡上, 默认的自动一般都是没有问题不需要修改的

在这里插入图片描述

然后我们看虚拟机设置, 将网络连接修改为桥接模式, 然后启动虚拟机, 通过 ip a 查看虚拟机网络信息

在这里插入图片描述

可以看到 ens160 的地址被分配了 192.168.1.5

测试

互相访问试试看

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看到, 效果与预期一致

  • 主机可以访问虚拟机
  • 虚拟机可以访问主机
  • 虚拟机可以访问主机局域网内的其他机器
  • 虚拟机可以访问互联网
  • 主机局域网内的其他机器可以访问虚拟机

手动配置

在这里插入图片描述

/etc/NetworkManager/system-connections 下默认只有一个配置文件 ens160.nmconnection, 其内容如下

[connection]
id=ens160
uuid=9b698abd-9a30-3055-98c2-8ace52598494
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1692431323

[ethernet]

[ipv4]
method=auto

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

在配置节 ipv4 下修改配置如下

method=manual
address1=192.168.1.129/24,192.168.1.1
dns=192.168.1.1
  • manual 代表手动配置网络地址
  • address1 则是虚拟机地址 和 网关地址, 这里不配网关地址的话, 无法访问百度
  • dns 则是域名解析服务器, 用英文分号分隔, 这里不配置的话没什么影响

执行 nmcli c reloadnmcli c up ens160 重新载入网络配置, 可看到 IP 地址已经更改

在这里插入图片描述

测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可见, 测试结果同样与预期完全相同, 即

  • 主机可以访问虚拟机
  • 虚拟机可以访问主机
  • 虚拟机可以访问主机局域网内的其他机器
  • 虚拟机可以访问互联网
  • 主机局域网内的其他机器可以访问虚拟机

网络地址转发模式 (NAT)

使用 NAT 模式

  • 可以不占用主机所在局域网的 IP 地址, 防止不够用(比如公司环境)
  • 也可以隔离主机局域网变化对虚拟机网络的影响
    • 假如当前是桥接模式的虚拟机, 虚拟机地址是手动指定的, 原本主机地址是 192.168.1.2, 现在换了个路由器, 主机地址变成了 192.168.0.2 了. 如果是少数几台虚拟机, 手动改下 IP 也还能接受, 如果量多的话, 那简直要烦死人

我们以手动配置 192.168.88.150/24 为例, /24 就是子网掩码 255.255.255.0

还原配置

刚刚我们将 ens160 的配置做了修改, 我们先将 ipv4 节的内容还原

[ipv4]
method=auto

虚拟网络配置

在这里插入图片描述

在 VMnet8 里可以设置具体的子网 IP 和子网掩码, 该网段是一个虚拟局域网, 和主机所在局域网的网段不一样即可, 同时最好避开常见的 192.168.0.0 / 192.168.1.0 / 192.168.31.0 等路由器默认子网, 默认的 192.168.88.0 就挺好的, 基本不会和主机局域网冲突, 这样当主机切换了局域网时, 不会影响到已配置过网络的虚拟机

NAT 设置 和 DHCP 设置 一般保持不变即可

所以汇总一下 VMnet8 的信息

子网地址: 192.168.88.0
子网掩码: 255.255.255.0
网关地址: 192.168.88.2

在这里插入图片描述

在这里插入图片描述

默认配置

首先查看虚拟网络编辑器中 VMnet8 的配置, 默认情况下是不需要动的, 除非主机局域网与该虚拟网络发生冲突

在这里插入图片描述

然后我们看虚拟机设置, 将网络连接修改为 NAT 模式, 然后重新启动虚拟机, 通过 ip a 查看虚拟机网络信息

注意: 此时系统的 ipv4 网络配置已经被还原为 method=auto

在这里插入图片描述

可以看到 ens160 的地址被分配了 192.168.88.129

测试

主机地址: 192.168.1.2
手机地址: 192.168.1.3
网关地址: 192.168.1.1

虚拟机地址: 192.168.88.129

互相访问试试看

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可见, 结果与预期一致

  • 主机可以访问虚拟机
  • 虚拟机可以访问主机
  • 虚拟机可以访问主机局域网内的其他机器
  • 虚拟机可以访问互联网
  • 主机局域网内的其他机器不可以访问虚拟机

手动配置

还是修改 /etc/NetworkManager/system-connections/ens160.nmconnection 中的 ipv4 节

method=manual
address1=192.168.88.150/24,192.168.88.2
dns=114.114.114.114;8.8.8.8
  • manual 代表手动配置网络地址
  • address1 则是虚拟机地址 和 虚拟网络网关地址, 这里必须配置虚拟网关地址, 否则虚拟机无法访问主机和主机局域网内的其他机器
  • dns 则是域名解析服务器, 用英文分号分隔, 不配置的话无法访问互联网

执行 nmcli c reloadnmcli c up ens160 重新载入网络配置, 可看到 IP 地址已经更改

在这里插入图片描述

测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可见, 测试结果同样与预期完全相同, 即

  • 主机可以访问虚拟机
  • 虚拟机可以访问主机
  • 虚拟机可以访问主机局域网内的其他机器
  • 虚拟机可以访问互联网
  • 主机局域网内的其他机器不可以访问虚拟机

仅主机模式

和 NAT 模式类似, 可以自行配置与测试

猜你喜欢

转载自blog.csdn.net/mrathena/article/details/132382261