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

虚拟机网络修复

虚拟机网络修复

前言:

众所周知 虚拟机的网络链接有时候容易挂掉 困扰主播很久了 所以单独拿出一篇文章去讲解他的原理 在实际的测试环境中 虚拟机的运用是经常的 那么了解虚拟机独特的上网方式是很重要的 当然也不是很独特的

虚拟机NAT模式联网

NAT(Network Address Translation,网络地址转换)是一种在网络设备(如路由器、防火墙或虚拟机的虚拟网络组件)上实现的技术,核心作用是解决 IPv4 地址资源不足的问题,同时增强内网设备的安全性。在虚拟机(如 VMware、VirtualBox)的 NAT 模式中,其工作原理与物理网络中的 NAT 类似,但通过虚拟组件实现,以下是详细解析:

一、NAT 的核心功能

  1. 地址转换:将内网设备的私有 IP 地址转换为外网的公有 IP 地址,使多个内网设备可通过一个公有 IP 访问互联网。
  2. 隔离内外网:外网无法直接访问内网设备的私有 IP,仅能通过 NAT 设备转发的请求通信,提升安全性。

二、虚拟机 NAT 模式的工作原理

以 VMware 为例,NAT 模式下虚拟机的上网流程依赖 3 个核心组件:虚拟网卡(VMnet8)NAT 服务虚拟 DHCP 服务器,具体步骤如下:

1. 虚拟网络环境搭建
  • 虚拟网卡(VMnet8) :主机中会生成一块虚拟网卡(如 “VMware Network Adapter VMnet8”),其 IP 地址属于一个私有网段(默认通常为192.168.137.x,可自定义),作为主机与虚拟机的 “桥梁”。
  • 虚拟交换机:VMware 内部创建一个虚拟交换机,将虚拟机的网络适配器、VMnet8 虚拟网卡、NAT 服务连接到同一网络。
  • 虚拟 DHCP 服务器:自动为虚拟机分配私有 IP 地址(如192.168.137.100)、子网掩码(如255.255.255.0)、网关(即 NAT 服务的虚拟 IP,如192.168.137.2)。
2. 虚拟机访问互联网的完整流程

假设场景:虚拟机(私有 IP:192.168.137.100)通过主机的公网 IP(如202.xx.xx.xx)访问互联网(如www.baidu.com)。

  1. 虚拟机发送请求
    虚拟机生成访问www.baidu.com的数据包,源 IP 为自身私有 IP(192.168.137.100),目标 IP 为百度服务器的公网 IP(如180.101.50.242),并将数据包发送到虚拟交换机。

  2. NAT 服务处理请求
    数据包经虚拟交换机转发至 NAT 服务,NAT 服务执行以下操作:

    • 替换源 IP:将数据包的源 IP(192.168.137.100)替换为主机的公网 IP(202.xx.xx.xx)。
    • 记录映射关系:在 NAT 设备的 “地址转换表” 中记录一条临时映射:虚拟机私有IP:端口 <-> 主机公网IP:临时端口(端口用于区分同一主机下的不同设备请求)。
  3. 主机转发请求到互联网
    经过地址转换的数据包,通过主机的物理网卡(如 Wi-Fi、以太网)发送到互联网,最终到达百度服务器。

  4. 服务器响应并返回数据
    百度服务器处理请求后,将响应数据包发送回主机的公网 IP(202.xx.xx.xx),目标端口为 NAT 服务记录的临时端口。

  5. NAT 服务反向转换并转发
    主机收到响应后,将数据包转发至 NAT 服务,NAT 服务查询 “地址转换表”,找到对应的虚拟机私有 IP(192.168.137.100)和原始端口,将响应数据包的目标 IP 替换为虚拟机私有 IP,再通过虚拟交换机转发给虚拟机。

  6. 虚拟机接收数据
    虚拟机收到响应,完成一次网络通信。

三、NAT 模式的特点

  1. 无需独立公网 IP:虚拟机使用主机的公网 IP 上网,无需额外配置公网地址。
  2. 内外网隔离:外网设备无法直接访问虚拟机(需手动配置端口映射才能实现),安全性高。
  3. 配置简单:虚拟机通过 DHCP 自动获取网络参数,无需手动设置 IP、网关等(也可手动固定)。
  4. 与主机网络独立:虚拟机的网络配置(如 IP 网段)不会影响主机的物理网络,适合新手使用。

修复

关闭主机网卡的网络共享功能

网络共享(ICS)会强制修改虚拟网卡的 IP 配置,与 VMware NAT 模式冲突,导致多网段问题:

  • 打开主机「网络连接」(控制面板→网络和共享中心→更改适配器设置)。
  • 找到你用于上网的物理网卡(如 “以太网” 或 “Wi-Fi”),右键→属性
  • 切换到「共享」选项卡,取消勾选 “允许其他网络用户通过此计算机的 Internet 连接来连接”,点击确定。
  • 重启 VMware 相关服务:按Win+R输入services.msc,找到VMware NAT ServiceVMware DHCP Service,右键重启。

重置 VMware 虚拟网络配置

VMware 的虚拟网络配置可能因冲突导致异常,建议重置:

  • 关闭所有虚拟机,打开 VMware 软件。

  • 点击顶部菜单「编辑」→「虚拟网络编辑器」(若提示需要管理员权限,点击 “更改设置”)。

  • 点击右下角「还原默认设置」,等待重置完成(此操作会恢复所有虚拟网络的默认配置)。

  • 重置后,确认 NAT 模式对应的虚拟网卡(通常是 VMnet8)的网段:

    • 在虚拟网络编辑器中,选中 VMnet8,查看 “子网 IP”(默认可能是 192.168.x.0,如 192.168.137.0,这可能是你看到 137 网段的原因)。
    • 若需修改为 31 网段,可直接修改 “子网 IP”(如 192.168.31.0),点击「应用」。

统一虚拟机的网络配置

确保虚拟机仅使用 NAT 模式的 IP,避免手动设置与 DHCP 冲突:

  • 打开虚拟机,进入网络设置(以 Windows 为例:控制面板→网络连接)。

  • 找到虚拟机的网卡(通常是 “以太网”),右键→属性→双击 “Internet 协议版本 4(TCP/IPv4)”。

  • 若之前手动设置了 31.1 地址,改为自动获取 IP 地址自动获取 DNS 服务器地址(由 VMware 的 DHCP 服务分配,与 VMnet8 网段一致)。

  • 若需固定 IP(仍在 NAT 网段内):

    • 选择 “使用下面的 IP 地址”,IP 地址设置为 VMnet8 子网内的地址(如 192.168.31.100,需与子网 IP 在同一网段)。
    • 子网掩码默认 255.255.255.0,默认网关填写 VMnet8 的网关(在虚拟网络编辑器中,点击 VMnet8 的「NAT 设置」可查看,通常是子网 IP 的第 4 段改为 2,如 192.168.31.2)。
    • DNS 服务器可填写主机的 DNS(如 114.114.114.114)。

桥接网络

在虚拟机(如 VMware、VirtualBox)中,桥接模式(Bridged Networking) 是一种让虚拟机直接接入物理网络的技术,使虚拟机在网络中表现为一台 “独立的物理设备”,与主机及局域网内其他设备处于同一网段。其核心原理是通过虚拟网桥(Virtual Bridge)将虚拟机的网络适配器与主机的物理网卡 “桥接”,让虚拟机直接参与物理网络的通信。

一、桥接模式的核心组件

  1. 虚拟网桥(VMnet0,以 VMware 为例)
    虚拟机软件会创建一个虚拟网桥(默认名为 VMnet0),它是连接虚拟机、主机物理网卡与物理网络的 “中间枢纽”,工作在数据链路层(基于 MAC 地址转发数据)。
  2. 虚拟机的网络适配器
    虚拟机的虚拟网卡(如 “VMware Virtual Ethernet Adapter”)会被 “挂接” 到虚拟网桥上,相当于虚拟机直接连接到物理网络。
  3. 主机的物理网卡
    主机的物理网卡(如以太网、Wi-Fi)也会被关联到虚拟网桥,使物理网络的流量能通过网桥传递给虚拟机,反之亦然。

二、虚拟机桥接模式的工作原理

桥接模式下,虚拟机与物理网络的通信流程如下:

1. 网络身份与 IP 配置
  • 虚拟机的网络身份与物理设备完全一致:它会像物理电脑、手机一样,通过物理网络的DHCP 服务器(如路由器)获取 IP 地址、子网掩码、网关和 DNS(也可手动设置与物理网络同网段的静态 IP)。
  • 例如:若物理网络中路由器分配的 IP 网段是192.168.1.x(网关192.168.1.1),则虚拟机获取的 IP 也会是192.168.1.x(如192.168.1.105),与主机(如192.168.1.100)处于同一网段。
2. 数据帧的转发流程

以虚拟机向物理网络中的另一台设备(如路由器或其他电脑)发送数据为例:

  1. 虚拟机发送数据
    虚拟机生成数据帧,源 MAC 地址为虚拟机虚拟网卡的 MAC,目标 MAC 地址为物理网络中目标设备的 MAC(如路由器的 MAC),源 IP 为虚拟机的 IP(如192.168.1.105),目标 IP 为物理设备的 IP(如192.168.1.1)。

  2. 虚拟网桥转发数据
    数据帧首先发送到虚拟网桥(VMnet0),网桥会像物理交换机一样,根据目标 MAC 地址判断转发方向:

    • 若目标设备在物理网络中(如路由器),网桥会将数据帧通过主机的物理网卡转发到物理网络。
    • 若目标设备是主机本身,网桥会直接将数据帧转发给主机的网络协议栈。
    • 若目标设备是同一主机上的其他桥接模式虚拟机,网桥会直接在虚拟机之间转发(无需经过物理网卡)。
  3. 物理网络响应与回传
    物理网络中的设备(如路由器)收到数据后,会直接以虚拟机的 IP 和 MAC 为目标进行响应,响应数据帧通过物理网络传输到主机的物理网卡,再经虚拟网桥转发给虚拟机。

  4. 与外网通信
    虚拟机访问互联网时,流程与物理设备完全一致:通过物理网络的网关(如路由器)转发,使用自身的 IP 地址与外网通信(无需经过 NAT 转换)。

三、桥接模式的特点

  1. 与物理网络完全融合
    虚拟机拥有与物理设备相同的网络地位,可被物理网络中的其他设备(如电脑、手机、路由器)直接发现和访问(通过 IP 或 MAC 地址)。
  2. IP 地址与物理网络一致
    虚拟机的 IP 必须与物理网络处于同一网段(否则无法通信),通常由物理网络的 DHCP 分配,或手动设置为同网段静态 IP(需与其他设备不冲突)。
  3. 无需地址转换
    与 NAT 模式不同,桥接模式下虚拟机的通信无需经过地址转换,数据直接在物理网络中传输,延迟更低,适合需要被外网直接访问的场景(如搭建服务器)。
  4. 依赖物理网络状态
    若主机断开物理网络(如断开 Wi-Fi、网线),虚拟机也会同时断网;若物理网络的 DHCP 或网关配置变化,虚拟机的网络也会受影响(需重新获取 IP 或手动调整)。

四、与 NAT 模式的核心区别

对比项桥接模式NAT 模式
网络地位与物理设备平等,属于物理网络的一部分属于独立的虚拟内网,通过主机 NAT 访问外网
IP 网段与物理网络相同(如192.168.1.x独立虚拟网段(如192.168.137.x
外网访问虚拟机可直接访问(需物理网络允许)需手动配置端口映射,否则无法直接访问
依赖物理网络强依赖(主机断网,虚拟机也断网)弱依赖(主机联网即可,虚拟机网段独立)

总结

桥接模式的核心是通过虚拟网桥将虚拟机 “接入” 物理网络,使其成为物理网络中的一台 “真实设备”,实现与物理网络的无缝通信。它适合需要虚拟机与物理设备频繁交互、或需要虚拟机被外网直接访问的场景(如开发测试、搭建局域网服务器)

NAT 模式的核心是通过 “地址转换” 和 “端口映射”,让内网设备(如虚拟机)借助一个公网 IP 访问互联网,同时隔离内外网以保障安全。在虚拟机中,这一过程由虚拟网卡、NAT 服务和 DHCP 服务器协同完成,实现了简单、安全的网络连接。

http://www.lryc.cn/news/603380.html

相关文章:

  • 充电宝自燃隐患引发关注:如何确保充电宝安全?
  • 门控激活函数:GLU/GTU/Swish/HSwish/Mish/SwiGLU
  • 机器学习sklearn:泰坦尼克幸存预测(决策树、网格搜索找最佳参数)
  • 【深度学习新浪潮】什么是世界模型?
  • fastApi中的ocr
  • 译 | 介绍PyTabKit:一个试图超越 Scikit-Learn的新机器学习库
  • 如何查询并访问路由器的默认网关(IP地址)?
  • 主应用严格模式下,子应用组件el-date-picker点击无效
  • 【Dify】-进阶14- 用 Dify 搭建法律文档解析助手
  • Vue.js 指令系统完全指南:深入理解 v- 指令
  • 智能图书馆管理系统开发实战系列(一):项目架构设计与技术选型
  • Ubuntu上开通Samba网络共享
  • Ambari 3.0.0 全网首发支持 Ubuntu 22!
  • Kafka——消费者组重平衡全流程解析
  • cpolar 内网穿透 ubuntu 使用石
  • Spark SQL 数组函数合集:array_agg、array_contains、array_sort…详解
  • 【MySQL】从连接数据库开始:JDBC 编程入门指南
  • Vim与VS Code
  • 【CodeTop】每日练习 2025.7.29
  • LibTorch使用-基础版
  • Jetpack - Room(Room 引入、Room 优化)
  • Spring Boot 自动配置:从 2.x 到 3.x 的进化之路
  • 牛顿拉夫逊法PQ分解法计算潮流MATLAB程序计算模型。
  • 微信小程序私密消息
  • GaussDB 数据库架构师修炼(十) 性能诊断常用视图
  • 原生html+js+jq+less 实现时间区间下拉弹窗选择器
  • 鸿蒙网络编程系列59-仓颉版TLS回声服务器示例
  • 42、鸿蒙HarmonyOS Next开发:应用上下文Context
  • Apache Ignite 的分布式原子类型(Atomic Types)
  • 专业Python爬虫实战教程:逆向加密接口与验证码突破完整案例