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

news2024/11/13 22:46:06

文章目录

  • 网络模式
  • 配网要求
  • CentOS
  • DHCP
  • 虚拟网络
  • 桥接模式
    • 默认配置
    • 测试
    • 手动配置
    • 测试
  • 网络地址转发模式 (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 地址可能会发生变化

虚拟网络

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

在这里插入图片描述

在控制面板中, 我们可以看到网卡的信息, 以太网是有线网卡(本次暂无), 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 模式类似, 可以自行配置与测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/901698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【COMP282 LEC3 LEC4 LEC5】

LEC 3 Overloading 超载 1. Two functions can have the same name if they have different parameters 2. The compiler will use the one whose parameters match the ones you pass in Performing Addition “” 重载一个operator ,这个operator函数被定义…

[线程/C]基础

文章目录 1. 线程介绍2. 创建线程2.1 线程函数2.2 创建线程 3. 线程退出4. 线程回收4.1 线程函数4.2 回收子线程数据4.2.1 使用子线程栈4.2.2 使用全局变量4.2.3 使用主线程栈 5. 线程分离6. 其他线程函数6.1 线程取消6.2 线程ID的比较 1. 线程介绍 线程是轻量级的进程&#x…

C语言入门教程,C语言学习教程(非常详细)第二章 c语言初探

第一个C语言程序 我们有两种方式从计算机获得信息:一是看屏幕上的文字、图片、视频等,二是听从喇叭发出来的声音。让喇叭发出声音目前还比较麻烦,我们先来看看如何在屏幕上显示一些文字吧。 在屏幕上显示文字非常简单,只需要一个…

npm 不是内部或外部命令,也不是可运行的程序或批处理文件。

遇到问题: 1.遇到问题:npm 不是内部或外部命令,也不是可运行的程序或批处理文件。 2.遇到问题:或者使用npm安装插件时会出现 XXX\node\node_modules\npm不可用 情况 如下图: 分析问题: nodejs在nodejs官网…

Python内置库介绍——random库

Content 0. 前言1. random.random()2. random.randint(a, b)3. random.choice(seq)4. random.shuffle(seq)5. random.sample(population, k)6. random.uniform(a, b)7. random.seed(x)8. 使用实例:随机生成用户初始账号和初始密码 0. 前言 操作系统:Win…

Leecode找出字符串中第一个匹配项的下标 即实现strSTR()函数

目录 简单介绍该函数的作用 在我们去用关键词查找微信或者qq聊天记录的时候,我们总不能一句一句去找吧。我们需要用到的功能底层大概是此博客所讲的这个函数熬。 一.算法需要传入的参数和返回类型 需要传入的就是关键词和所有的文本,返回的是当前关键词…

IDEA源码下载失败问题

1.IDEA下载源码报 java.lang.RuntimeException: Cannot reconnect java.lang.RuntimeException: Cannot reconnect 异常通常表示无法重新连接到资源或服务。这种情况可能出现在尝试重新连接到数据库、网络套接字或任何需要连接的资源时。 以下是解决此异常的几种可能方法&…

经典LeetCode在线OJ习题

目录 习题一:移除元素 (一)、题目 (二)、示例 (三)、解题思路 思路一: 思路一源代码: 源代码解释: 思路二:(最标准最适用&#…

利用metasploit生成反弹shell程序,实现远程控制

1. 关于metasploit Metasploit是一款开源的渗透测试框架,由Rapid7公司开发和维护。它提供了一套强大的工具和资源,用于评估和测试计算机系统的安全性。Metasploit的目标是帮助安全专业人员发现和利用系统中的漏洞,以便改进系统的安全性。 Met…

Mybatis的SqlSource SqlNode BoundSql

学习链接 MyBatis SqlSource解析 【Mybatis】Mybatis源码之SqlSource#getBoundSql获取预编译SQL Mybatis中SqlSource解析流程详解 Mybatis TypeHandler解析 图解 Mybatis的SqlSource&SqlNode - processon DynamicSqlSource public class DynamicSqlSource implement…

【leetcode 力扣刷题】哈希表初尝试

哈希表 刷题初尝试 哈希表基础知识242. 有效的字母异位词383. 赎金信49. 字母异位词分组438. 找到字符串中所有字母异位词 哈希表基础知识 哈希表是一种数据结构,也叫散列表。哈希表中存储的是键值对,即(key,value),根据key直接查…

7-1 选择法排序

分数 20 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求将给定的n个整数从大到小排序后输出。 输入格式: 输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出从大到小有序…

openai多模态大模型:clip详解及使用

引言 CLIP全称Constrastive Language-Image Pre-training,是OpenAI推出的采用对比学习的文本-图像预训练模型。CLIP惊艳之处在于架构非常简洁且效果好到难以置信,在zero-shot文本-图像检索,zero-shot图像分类,文本→图像生成任务…

JAVA基础知识(五)——面向对象(中)

面向对象(中) 一、面向对象特征之一:封装与隐藏1.1 简介1.2 封装性的体现1.3 四种访问权限修饰符 二、类的成员之三:构造器2.1 构造器的特征2.2 构造器的作用2.3 语法格式2.4 构造器分类2.5 构造器重载2.6 属性赋值过程 三、扩展知…

Python的六种参数?

很多人说,Python的参数类型有四种、五种,我个人认为归纳起来是六种参数,分别为:位置参数(Positional Arguments)、默认参数(Default Arguments)、关键字参数(Keyword Arg…

[C++11]

文章目录 1. 自动类型推导1.1 auto1.1.1 推导规则1.1.2 auto的限制1.1.3 auto的应用1.1.4 范围for 1.2 decltype1.2.1 推导规则1.2.2 decltype的应用 1.3 返回类型后置 2.可调用对象包装器、绑定器2.1 可调用对象包装器2.1.1 基本用法2.1.2 作为回调函数使用 2.2 绑定器 3. usi…

系统架构设计专业技能 · 信息系统基础

系列文章目录 系统架构设计专业技能 网络技术(三) 系统架构设计专业技能 系统安全分析与设计(四)【系统架构设计师】 系统架构设计高级技能 软件架构设计(一)【系统架构设计师】 系统架构设计高级技能 …

vue 关闭prettier警告warn

这个就是我们创建vue cli的时候 把这个给默认上了 关闭这个只需在.eslintrc.js页面里边添加一行代码"prettier/prettier": "off"

Mac OS 中JDK 环境(jdk 1.8.0_831)安装配置、环境变量配置及卸载操作

前言: 摊牌了,本来就有点喜新厌旧的我,特意把系统和开发环境都拉到比较高,想试验一下兼容性和某些新特性,探索了一下新大陆,也见识了各种光怪陆离的妖魔鬼怪。 因为要着手云平台项目的重构改版和新系统的架…

5G技术与其对智能城市、物联网和虚拟现实领域的影响

随着第五代移动通信技术(5G)的到来,我们即将迈向一个全新的数字化世界。5G技术的引入将带来更高的速度、更低的延迟和更大的连接性,推动了智能城市、物联网和虚拟现实等领域的发展。 首先,5G技术将带来超越以往的网络速…