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

Windows宿主机 与 VMWare centos虚拟机 之间的通信访问

kvm 虚拟机并配置静态ip 虚拟机怎么配置静态ip :

kvm 虚拟机并配置静态ip 虚拟机怎么配置静态ip_mob64ca14106f2f的技术博客_51CTO博客

当VMware 安装时,就会 默认生成了 VMnet1 和 VMnet8 两个虚拟网卡,通过 ipconfig 可以看到:

C:\Windows\system32>ipconfigWindows IP ConfigurationEthernet adapter 以太网:Media State . . . . . . . . . . . : Media disconnectedConnection-specific DNS Suffix  . :Wireless LAN adapter 本地连接* 1:Media State . . . . . . . . . . . : Media disconnectedConnection-specific DNS Suffix  . :Wireless LAN adapter 本地连接* 10:Media State . . . . . . . . . . . : Media disconnectedConnection-specific DNS Suffix  . :Ethernet adapter VMware Network Adapter VMnet1:Connection-specific DNS Suffix  . :Link-local IPv6 Address . . . . . : fe80::5512:8645:8e0:4d0%11IPv4 Address. . . . . . . . . . . : 192.168.42.1Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . :Ethernet adapter VMware Network Adapter VMnet8:Connection-specific DNS Suffix  . :Link-local IPv6 Address . . . . . : fe80::b5c7:ae5:6759:c4b1%16IPv4 Address. . . . . . . . . . . : 192.168.159.1Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . :Wireless LAN adapter WLAN:Connection-specific DNS Suffix  . :IPv6 Address. . . . . . . . . . . : 2409:893d:510e:8776:a963:8e7c:c6f9:1e4cTemporary IPv6 Address. . . . . . : 2409:893d:510e:8776:e5db:ce4a:10c:2dc2Link-local IPv6 Address . . . . . : fe80::a963:8e7c:c6f9:1e4c%15IPv4 Address. . . . . . . . . . . : 192.168.43.241Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . : fe80::9828:10ff:fea4:45cc%15192.168.43.1Ethernet adapter 蓝牙网络连接:Media State . . . . . . . . . . . : Media disconnectedConnection-specific DNS Suffix  . :

 其中,这两个网卡对应两种网络连接模式,Host only 和 NAT:

虚拟网卡名称默认模式子网用途
VMnet1Host-only比如 192.168.198.0/24仅虚拟机与宿主机通信,不可上网
VMnet8NAT比如 192.168.159.0/24虚拟机可以访问外网,通过 NAT 转发

但这还不够,需要非常注意一件事:NAT不只存在于宿主机,虚拟机上也运行这一个NAT:

即, VMware 的 NAT 转发器(vmnat.exe 管理),同样作为一个网关进行 转发!而这个网关与宿主机的网关 对于 虚拟机的请求 有着 不一样的 处理方式!

在配置虚拟机静态IP的时候,请一定注意,GATWAY=虚拟机的NAT网关!接下来会说为什么

一般都会选择 NAT,重点说一下这个模式吧:

 VMWare安装好后,宿主机会 跑一个 NAT 转发器,让 选择了NAT模式 的 虚拟机 能访问外网

总结一下,宿主机访问虚拟机,虚拟机访问宿主机,虚拟机访问宿主机vmnet8网关 ,虚拟机访问外网,都是什么流程:

为了方便,举例说明:

IP所在设备用途
192.168.43.241宿主机真实无线网卡宿主机访问外网
192.168.159.1宿主机上的 VMnet8 虚拟网卡宿主机和虚拟机之间同子网通信
192.168.159.2VMware NAT 网关(软件实现)虚拟机访问外网时的默认网关
192.168.159.128虚拟机 IP

1. 宿主机访问虚拟机:

总结的说,在 NAT 模式 下:

  • 宿主机和虚拟机处在同一子网内(通常是 192.168.159.0/24),但是虚拟机通过宿主机的 NAT 网关(192.168.159.2) 访问外网。

  • 宿主机访问虚拟机 时,虚拟机和宿主机通过 宿主机的 VMnet8 网卡(192.168.159.1) 进行通信。

具体流程:

  • 宿主机发起请求:

    • 宿主机发起请求(比如 pingSSH),目标是虚拟机的 IP(如 192.168.159.128)。

    • 虚拟机的 IP 属于 NAT 网络 内,因此宿主机能直接通过该 IP 访问虚拟机。

  • 虚拟机接收请求:

    • 虚拟机的网络接口(例如 ens33)接收到宿主机的请求。

    • 如果虚拟机防火墙没有阻止这种请求,虚拟机会正常响应宿主机。

  • 网络路由(通过 VMnet8 网卡):

    • 由于虚拟机和宿主机在同一子网内,不需要经过默认网关。宿主机直接通过 192.168.159.1(VMnet8 网卡)与虚拟机通信。

    • 在宿主机和虚拟机之间,流量是直接通过虚拟网卡(192.168.159.1)转发,不经过 NAT 转发器。

2. 虚拟机访问宿主机 ping 192.168.43.241 时:

  • 虚拟机要 ping 一个**不在同子网(192.168.159.0/24)**的 IP

  • 根据路由表:目标不在本地子网 → 把包交给默认网关(192.168.159.2)

  • NAT 转发器(192.168.159.2)接到包后,看目标是 192.168.43.241(宿主机真实网卡 IP)

  • NAT 转发器就把包发到宿主机外网接口(192.168.43.241),宿主机收到 ping 包

  • 宿主机再决定要不要回包 → 一般能回包,因为是本机接收到

所以这个 ping 最终能通,是通过 NAT 转发实现的,包经过 192.168.159.2,然后到宿主机的真实网卡(192.168.43.241)。

总结:

NAT 模式 下,宿主机 和 虚拟机 之间的通信 不需要走 NAT 网关192.168.159.2)。

只要宿主机和虚拟机在同一个子网,通信就是直通的,通过 宿主机的 VMnet8 网卡(192.168.159.1

3. 虚拟机访问宿主机vmnet8网关  ping 192.168.159.1 时:

  • 192.168.159.1 与虚拟机 在同一个子网(192.168.159.0/24)

  • 根据路由表:目标在本地子网 → 直接二层发 ARP 找到宿主机的 VMnet8 网卡

  • 不经过虚拟机VMWare的 NAT网关(192.168.159.2)

  • 流量直接发到宿主机的 VMnet8 接口,看宿主机的防火墙是否允许 ICMP Echo Reply

如果宿主机防火墙禁掉了 VMnet8 接口的 ping 回复,就 ping 不通。(我就是这个情况,但是没继续尝试 关防火墙,毕竟是宿主机,不太方便关防火墙,,)

4. 虚拟机访问外网  ping  www.baidu.com

  • ping 命令需要先解析域名:ping www.baidu.com → 得到 IP,比如 180.101.49.11
    (这个要用 DNS,DNS 请求也是 UDP 包,也要走 NAT,后面我说) 
    最终目标是外网 IP:180.101.49.11

  • 虚拟机判断:目标 IP(180.101.49.11)不在本地子网(192.168.159.0/24)

  • 根据路由表:需要把包发给默认网关 → 192.168.159.2

  • 虚拟机判断:目标 IP(180.101.49.11)不在本地子网(192.168.159.0/24)

  • 根据路由表:需要把包发给默认网关 → 192.168.159.2

  • 虚拟机构造一个 ICMP Echo Request(ping 包)

  • 二层包:目标 MAC 是网关 192.168.159.2 的 MAC

  • 最终:包从虚拟机的虚拟网卡,送给了 192.168.159.2(VMware NAT 网关)

   NAT 转发器接收并转发:

  • VMware 的 NAT 转发器(vmnat.exe)收到包

  • 它干两件事:

    ① 替换包的源地址:原本是 192.168.159.128 → 改成宿主机外网 IP(192.168.43.241)
    ② 把包发到宿主机的真实网卡(WLAN,即 192.168.43.241),发往互联网
  • 互联网(运营商路由器)看到包的源 IP 是 192.168.43.241(宿主机真实 IP)

  • 回复一个 ICMP Echo Reply(回包)给 192.168.43.241

   宿主机收到回包:

  • 宿主机收到 ping 回包(目标 IP 是 192.168.43.241)

  • vmnat.exe(NAT 转发器)识别到:

    • 这个回包是之前替虚拟机发出的请求的回包

  • NAT 转发器根据内部的 NAT 表,把目标 IP 改回:

    • 把包重新转发给虚拟机(目标 IP 改回 192.168.159.128)

终于,虚拟机收到回包 :

虚拟机收到 ping 回包,显示:

Reply from 180.101.49.11: bytes=32 time=xxms TTL=...

总结一下就是:

虚拟机 ping 外网:

  • 目标不在本地子网 → 包发给默认网关(192.168.159.2)

  • NAT 转发器替换源地址 → 宿主机外网 IP

  • 回包回来 → NAT 转发器替换回虚拟机 IP

http://www.dtcms.com/a/271575.html

相关文章:

  • Java异步编程全解析:从基础到高阶实战
  • Shader面试题100道之(41-60)
  • 借助ssh实现web服务的安全验证
  • claude code调用(免费白嫖100额度)
  • CentOS/RHEL LVM 磁盘扩展完整教程
  • 数学模型:十大距离
  • 小程序软装: 组件库开发
  • 打造企业级数据治理运营体系:从项目到产品,再到体系化运营
  • 图像处理中的直方图均衡化:原理与实现
  • 一天两道力扣(3)
  • 减少空间占用的生成模型实战与推理资源消耗量化对比
  • CTFHub————Web[信息泄露(目录遍历、PHPINFO)]
  • Windows Subsystem for Linux (WSL):现代开发的终极跨平台方案
  • 【Modern C++ Part7】_创建对象时使用()和{}的区别
  • 计算机嵌入式基础
  • SpringCache整合SpringBoot使用
  • 洛谷P1044 栈(学习向)
  • Unity Demo-3DFarm详解-其一
  • TCP协议格式与连接释放
  • 智能Agent场景实战指南 Day 8:销售助手Agent开发实战
  • 25春云曦期末考复现
  • “上下文工程”领域的部分参考资料
  • vue中v-for与v-if的优先级
  • 在已有 Nexus3 的基础上搭建 Docker 私有镜像仓库
  • 如何降低AIGC的有效策略是什么?降AIGC工具的创新与应用前景
  • 如何识别SQL Server中需要添加索引的查询
  • 3 STM32单片机-delay延时驱动
  • langchain从入门到精通(四十)——函数调用技巧与流程
  • 什么是公链?
  • 如何通过配置gitee实现Claude Code的版本管理