当前位置: 首页 > news >正文

虚拟机三种网络模式详解

  • 在电脑里开一台虚拟机,是再常见不过的操作了。无论是用虚拟机玩只有旧版本系统能运行的游戏,还是用来学习Linux、跑跑应用程序都是很好的。而这其中,虚拟机网络是绝对绕不过去的。本篇文章通俗易懂的介绍了常见的虚拟网络提供的三种网络链接模式NAT、桥接、主机。即使不懂虚拟网络,看了本篇也能成为虚拟机网络糕手糕糕手!

一:NAT( 网络地址转换)

image-20240716151837120

image-20240929213736185

工作原理/链接方式

工作原理

  • NAT模式(网络地址转换模式,Network Address Translation)允许虚拟机通过主机访问外部网络(如互联网),但外部网络无法直接访问虚拟机。其工作原理主要是通过主机充当虚拟机的“网关”来实现网络地址转换。
  1. 虚拟机的私有网络
    • 在 NAT 模式下,虚拟机会被分配一个私有 IP 地址(如 192.168.x.x 或 10.x.x.x),这个 IP 地址只能在虚拟机和主机之间有效,并且与外部网络隔离。
  2. 虚拟机请求外部网络
    • 当虚拟机需要访问外部网络(如互联网)时,它会把数据包通过虚拟网卡发送给主机。
    • 数据包的源 IP 地址是虚拟机的私有 IP 地址,而目标地址是外部网络的某个设备(例如某个网站的服务器 IP)。
  3. 主机进行 NAT 转换
    • 主机充当,NAT 路由器,将来自虚拟机的数据包进行,网络地址转换。
      • 将数据包中的源 IP 地址从虚拟机的私有 IP 地址转换为主机的公网 IP 地址。
      • 保留虚拟机的端口信息,以便将返回数据正确转发给虚拟机。
  4. 数据包发送至外部网络
    • 主机将已经替换源 IP 的数据包发送到外部网络(例如互联网)。
    • 外部服务器只看到数据包的源地址为主机的公网 IP,而不知道虚拟机的私有 IP。
  5. 外部网络响应数据
    • 外部服务器将响应数据包发送回主机的公网 IP。
    • 主机接收到响应后,使用 NAT 表将数据包中的目标 IP 地址重新转换回虚拟机的私有 IP 地址。
  6. 主机将数据包转发给虚拟机
    • 主机将响应数据包转发给对应的虚拟机,虚拟机接收到外部网络的数据包后完成通信。
  • NAT模式下,主机是虚拟的路由器,而虚拟机是一台私有网络中的机器。而既然是私有网络中的机器,那就和私有网络IP地址有关

私有网络IP地址范围

  • 10.0.0.0 - 10.255.255.255

  • 172.16.0.0 - 172.31.255.255

  • 192.168.0.0 - 192.168.255.255

其他需要注意的

  • 处于网络中的计算机,必须要在同一个子网下面才能直接通信(通过数据链路层来通信)。具体什么是子网 可以看我的另一篇博客:
  • 如果两台计算机不在同一个子网,不能通过直接的数据链路层进行数据传输。但是,它们可以通过 三层(网络层) 的设备,例如路由器,来进行通信。
    • 路由器通过网络层协议(如 IP 协议)将数据从一个子网转发到另一个子网
https://blog.csdn.net/qq_61654952/article/details/139453099

二:桥接模式(独立主机)

桥接模式允许虚拟机与主机网络以及外部网络完全独立地通信,虚拟机就像是网络中的一台独立主机,具有自己的 IP 地址。

image-20240929213748356

工作原理

1.网络连接

  • 在桥接模式下,虚拟机的网络适配器与主机的物理网卡(例如以太网适配器或无线适配器)相连接。这种连接模拟了虚拟机与局域网中的一台独立设备直接相连的情况。

2.获取 IP 地址

  • 虚拟机启动后,会通过 DHCP(动态主机配置协议)从网络中的 DHCP 服务器获取一个 独立的 IP 地址。这个 IP 地址与局域网中的其他设备位于同一子网内,确保虚拟机可以与其他设备直接通信。

3.数据链路层通信

  • 虚拟机和其他网络设备之间的通信是在数据链路层(Layer 2)进行的。虚拟机使用 MAC 地址进行识别和通信。
  • 当虚拟机发送数据包时,它会将数据包发送到主机的物理网卡。由于虚拟机的网络适配器与主机的网卡桥接,数据包将直接转发到局域网。

其他需要注意的

  • 需要确保 DHCP 服务器能够为虚拟机分配 IP,或者手动为虚拟机分配一个不与其他设备冲突的 IP 地址。
  • 桥接模式下,虚拟机和主机地位是一样的,都是主机链接的局域网中的一台机器,它可以直接访问局域网中的其他设备,如打印机、文件服务器等,也可以被其他设备直接访问。

三:主机模式(子主机)

主机模式将虚拟机完全隔离在主机的网络中,虚拟机只能与主机通信,无法访问外部网络,也无法与其他局域网设备通信。

image-20240929213717638

工作原理

1.虚拟网络适配器

  • 在主机模式下,虚拟机通过一个虚拟网络适配器与主机进行连接。这个虚拟适配器形成了一个独立的局域网,仅包含主机和虚拟机,完全隔离于外部网络。

2.IP 地址分配

  • 主机和虚拟机在这个私有网络中都有各自的 IP 地址。主机的虚拟网络适配器通常会为虚拟机分配一个私有 IP 地址(例如 192.168.x.x)。这个 IP 地址只在主机和虚拟机之间有效,外部网络无法访问。

3.数据传输

  • 当虚拟机需要与主机通信时,它通过虚拟网络适配器发送数据包。这些数据包只在主机和虚拟机之间进行转发。
  • 主机和虚拟机之间的通信是在数据链路层(Layer 2)进行的,使用 MAC 地址进行识别和处理。

其他需要注意的

  • 没有,这个模式一般也很少人用吧

在VM中打开

image-20240929214043415

image-20240929214519495

总结

虚拟机软件设置不同的网络模式,是因为有其特定的应用场景,比如

  • 桥接模式:适合需要与外部网络通信的虚拟机。
  • NAT 模式:适合需要访问外部网络,但无需外部设备访问虚拟机的情况。
  • 主机模式:适合完全隔离的虚拟环境。

img

你好,我是Qiuner. 为帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner⭐ gitee https://gitee.com/Qiuner 🌹

如果本篇文章帮到了你 不妨点个吧~ 我会很高兴的 😄 (^ ~ ^) 。想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎。

代码都在github或gitee上,如有需要可以去上面自行下载。记得给我点星星哦😍

如果你遇到了问题,自己没法解决,可以去我掘金评论区问。私信看不完,CSDN评论区可能会漏看 掘金账号 https://juejin.cn/user/1942157160101860 掘金账号

更多专栏:
  • 📊 一图读懂系列

  • 📝 一文读懂系列

  • ⚽ Uniapp

  • 🌟 持续更新

  • 🤩 Vue项目实战

  • 🚀 JavaWeb

  • 🎨 设计模式

  • 📡 计算机网络

  • 🎯 人生经验

  • 🔍 软件测试

掘金账号 CSDN账号

感谢订阅专栏 三连文章

相关文章:

虚拟机三种网络模式详解

在电脑里开一台虚拟机,是再常见不过的操作了。无论是用虚拟机玩只有旧版本系统能运行的游戏,还是用来学习Linux、跑跑应用程序都是很好的。而这其中,虚拟机网络是绝对绕不过去的。本篇文章通俗易懂的介绍了常见的虚拟网络提供的三种网络链接模…...

[leetcode]674_最长连续递增序列

给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums[i 1] &am…...

【无人机设计与技术】四旋翼无人机,UAV仿真,轨迹跟踪PID控制

摘要 本文探讨了四旋翼无人机&#xff08;UAV&#xff09;在轨迹跟踪中的PID控制仿真方法。通过设计三轴方向的PID控制器&#xff0c;调节无人机的姿态与位置&#xff0c;使其能够准确跟踪预设轨迹。本文使用MATLAB/Simulink进行了建模与仿真&#xff0c;验证了PID控制算法在无…...

回归预测|基于卷积神经网络-支持向量机的数据回归预测Matlab程序CNN-SVM 卷积提取特征与原始特征进行融合预测

回归预测|基于卷积神经网络-支持向量机的数据回归预测Matlab程序CNN-SVM 卷积提取特征与原始特征进行融合预测 文章目录 一、基本原理原理流程总结 二、实验结果三、核心代码四、代码获取五、总结 回归预测|基于卷积神经网络-支持向量机的数据回归预测Matlab程序CNN-SVM 卷积提…...

javaScript基础知识汇总

一、基础语法 1、区分大小写&#xff1a;无论是变量、函数名还是操作符&#xff0c;都区分大小写。 2、标识符&#xff1a;就是变量、函数、属性或函数参数的名称。标识符可以由一个或多个字符构成&#xff0c;但需要满足以下条件&#xff1a; 第一个字符必须是一个字母、下…...

《动手学深度学习》笔记2.2——神经网络从基础→进阶 (参数管理-每层的权重/偏置)

目录 0. 前言 正文&#xff1a;参数管理 1. 参数访问 1.1 [目标参数] 1.2 [一次性访问所有参数] 1.3 [从嵌套块收集参数] 2. 参数初始化 2.1 [内置初始化] 2.2 [自定义初始化] 2.3 [参数绑定-共享参数] 3. 小结&#xff08;第2节&#xff09; 4. 延后初始化 (原书第…...

双端之Nginx+Php结合PostgreSQL搭建Wordpress

第一台虚拟机:安装 Nginx 更新系统包列表: sudo apt update安装 Nginx及php扩展: sudo apt install nginx php-fpm php-pgsql php-mysqli -y启动 Nginx 服务: sudo systemctl start nginx检查 Nginx 是否正常运行: xdg-open http://localhost注意:终端命令打开网址 …...

Another redis desktop manager使用说明

Another redis desktop manager使用说明 概述界面介绍图示说明连接界面设置界面查看操作日志主界面信息进入redis-cli控制台更多 概述 Another Redis Desktop Manager是一个开源的跨平台 Redis 客户端&#xff0c;提供了简洁易用的图形用户界面&#xff08;GUI&#xff09;&am…...

【git】配置 Git 的换行符处理和安全性||安装 Ruby

配置 Git 的换行符处理和安全性&#xff1a; git config --global core.autocrlf input&#xff1a;这个设置确保在提交代码时&#xff0c;Git 会将 CRLF&#xff08;Windows 的换行符&#xff09;转换为 LF&#xff08;Unix 的换行符&#xff09;&#xff0c;但在检出代码时不…...

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布 VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版&#xff0c;Dell (戴尔)、HPE (慧与)、Lenovo (联想)、IEIT SYSTEMS (浪潮信息)、Cisco …...

Unity 代码裁剪(Strip Engine Code)

文章目录 0.IL2CPP 打包运行闪退问题1.什么是代码裁剪2.为什么要使用代码裁剪3.代码裁剪设置与级别4.强制保留代码4.1 使用[Preserve]标签4.2 使用Link.xml文件 5.Strip中遇到的问题及解决方法6.注意事项 0.IL2CPP 打包运行闪退问题 Google Play要求从2019年8月1日起apk必须支…...

单目3d重建DUSt3R 笔记

目录 DUSt3R 三维重建 报错RecursionError: maximum recursion depth exceeded in comparison 报错 numpy.core.multiarray failed to import 报错Numpy is not available 解决 升级版mast3r 速度变慢 修改了参数设置脚本&#xff1a; 测试效果 操作技巧 DUSt3R 三维重…...

AI驱动TDSQL-C Serverless 数据库技术实战营-与AI的碰撞

目录 一、简介 二、实验介绍 三、结果展示 四、实操指导 4.1 系统设计 4.2 环境搭建&#xff08;手把手教程&#xff09; 4.3 应用构建 4.4 效果展示 4.5 踩坑避雷总结 五、清理资源 5.1 删除TDSQL-C Serverless 5.2 删除 HAI 算力 六、实验总结归纳 一、简介 本…...

C++之String类(上)

片头 嗨&#xff01;好久不见~ 今天我们来学习C的Sting类&#xff0c;不过&#xff0c;在学习它之前&#xff0c;我们先来对STL库有一个简单的了解。 STL&#xff08;standard template library--标准模板库&#xff09;&#xff0c;是C标准库的重要组成部分&#xff0c;不仅是…...

kubernets基础-ingress详细介绍

文章目录 什么是IngressIngress详细说明Ingress示例 Ingress控制器Ingress控制器的工作原理Ingress控制器的特点常见的Ingress控制器 Ingress关联Ingress控制器一、Ingress资源对象二、Ingress控制器三、Ingress与Ingress控制器的关联方式四、注意事项 多实例部署一、Ingress多…...

jenkins部署Maven和NodeJS项目

在 Java 项目开发中&#xff0c;项目的编译、测试、打包等是比较繁琐的&#xff0c;属于重复劳动的工作&#xff0c;浪费人力和时间成本。以往开发项目时&#xff0c;程序员往往需要花较多的精力在引用 jar 包搭建项目环境上&#xff0c;跨部门甚至跨人员之间的项目结构都有可能…...

在unity资源中发现无效引用

本文主要解决在不打开unity的情况下搜索出无效引用的资源的方法 1. 概述 一般只要遍历一下目录里所有资源,判空一下就好了但有些情况下,不希望打开unity, 尤其希望是在资源整合时,想更快验证资源的合法性, 这对合并提交及出包验证时,都要较大的需求 2. 简单的验证方法 简单来…...

C#知识|基于反射和接口实现抽象工厂设计模式

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 01 应用场景 在项目的多数据库支持上、业务的多算法封装、以及各种变化的业务中&#xff1b; 02 抽象工厂组成 抽象工厂包括抽象产品&#xff08;即业务接口&#xff0c;可以通过抽象类或抽象接口设计&#xff09;…...

【分布式微服务云原生】gRPC vs RPC:深入探索远程过程调用的现代与经典

摘要 在分布式系统的世界里&#xff0c;gRPC和RPC是两个耳熟能详的术语&#xff0c;但它们之间有何区别和联系&#xff1f;本文将深入探讨gRPC和RPC的概念、关键特性、以及它们在现代软件开发中的应用。你将了解到gRPC如何作为RPC的一种实现&#xff0c;提供高性能的跨语言远程…...

听说这是MATLAB基础?

MATLAB&#xff08;矩阵实验室&#xff09;是一个强大的高性能计算环境和编程语言&#xff0c;广泛应用于数学计算、算法开发、数据分析、可视化以及模拟等多个领域。以下是MATLAB的一些基础知识&#xff0c;涵盖其功能、语法、基本操作等方面。 1. MATLAB环境 工作区&#xf…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...