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

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

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

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

C:\Windows\system32>ipconfig

Windows IP Configuration


Ethernet adapter 以太网:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter 本地连接* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter 本地连接* 10:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter VMware Network Adapter VMnet1:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::5512:8645:8e0:4d0%11
   IPv4 Address. . . . . . . . . . . : 192.168.42.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter VMware Network Adapter VMnet8:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::b5c7:ae5:6759:c4b1%16
   IPv4 Address. . . . . . . . . . . : 192.168.159.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Wireless LAN adapter WLAN:

   Connection-specific DNS Suffix  . :
   IPv6 Address. . . . . . . . . . . : 2409:893d:510e:8776:a963:8e7c:c6f9:1e4c
   Temporary IPv6 Address. . . . . . : 2409:893d:510e:8776:e5db:ce4a:10c:2dc2
   Link-local IPv6 Address . . . . . : fe80::a963:8e7c:c6f9:1e4c%15
   IPv4 Address. . . . . . . . . . . : 192.168.43.241
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::9828:10ff:fea4:45cc%15
                                       192.168.43.1

Ethernet adapter 蓝牙网络连接:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-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网关!接下来会说为什么

同时注意,“使本地DHCP服务将IP地址分配给虚拟机” 这个一定要勾选啊啊啊啊

一般都会选择 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

<think>好的,我现在需要解决宿主机无法ping通VMware虚拟机的问题。用户提到虚拟机使用的是桥接模式,但即使关闭了SELinux和防火墙,问题依旧存在。根据提供的引用内容,可能存在多种原因,我需要一步步排查。 首先,用户尝试了关闭SELinux和防火墙,但没解决。引用[1]和[5]提到关闭防火墙可能有效,但有时候不是主要原因。我需要检查网络配置是否正确。桥接模式下,虚拟机IP应该宿主机在同一子网。用户是否配置了正确的静态IP?可能需要确认子网掩码、网关和DNS设置是否正确。 然后,引用[3]提到重启VMnet8网络可能有效,但用户使用的是桥接模式,可能和VMnet8无关。不过,引用[4]说明NAT模式下使用VMnet8,而桥接模式通常使用VMnet0。但用户的问题可能和虚拟网络适配器配置有关,比如桥接的物理网卡选择是否正确。例如,如果宿主机有多个网卡,VMware可能桥接到了错误的网卡上,导致IP不在同一网络。 另外,引用[5]提到设置主机和虚拟机网卡相同,或者还原VMware网络设置。这可能包括在VMware中恢复默认网络设置,或者重新配置虚拟网络编辑器中的桥接设置,确保桥接到正确的物理网卡。 还有可能的问题是虚拟机的网络适配器驱动程序或服务未正确运行。需要检查VMware相关服务是否启动,比如NAT和DHCP服务是否运行,虽然桥接模式不依赖这些服务,但服务状态可能影响整体网络功能。 另外,检查宿主机的防火墙是否有入站规则阻止了ICMP请求。虽然用户可能关闭了防火墙,但某些安全软件可能仍会拦截流量。此外,虚拟机内部的防火墙(如iptables)是否完全关闭,而不仅仅是SELinux? 最后,可能需要检查物理网络设备(如路由器或交换机)是否限制了桥接模式下的通信,尤其是在公司网络中可能存在ACL或端口安全设置,阻止了虚拟机的连接。 总结可能的解决步骤:检查桥接的物理网卡设置,确认IP配置在同一子网,关闭所有防火墙(包括宿主机虚拟机),重启VMware网络服务,还原虚拟网络设置,检查物理网络限制。</think>### 宿主机无法ping通VMware虚拟机的解决方案 #### 1. **检查网络模式IP配置** - **桥接模式要求**:确保虚拟机IP宿主机在同一子网。例如,若宿主机IP为$192.168.1.100$,虚拟机IP应类似$192.168.1.x$(子网掩码和网关需一致)[^4]。 - **静态IP验证**:在虚拟机执行`ifconfig`(或`ip addr`)确认IP配置正确,避免地址冲突[^1]。 #### 2. **调整VMware虚拟网络设置** - **桥接物理网卡选择**:在VMware的**虚拟网络编辑器**中,选择桥接模式对应的物理网卡(如无线网卡或有线网卡),确保实际连接的网络匹配。 - **还原默认设置**:在VMware中点击**编辑 > 虚拟网络编辑器 > 还原默认设置**,重建虚拟网络配置[^5]。 #### 3. **关闭防火墙安全组件** - **宿主机防火墙**:临时关闭宿主机防火墙(Windows:控制面板中关闭;Linux:`systemctl stop firewalld`)[^1]。 - **虚拟机防火墙**:在CentOS中彻底关闭防火墙: ```bash systemctl stop iptables # 临时关闭 systemctl disable iptables # 永久禁用 ``` - **SELinux**:确认已关闭(`setenforce 0`临时关闭,修改`/etc/selinux/config`为`disabled`永久生效)[^1]。 #### 4. **重启网络服务适配器** - **虚拟机网络服务**: ```bash service network restart # CentOS 6 systemctl restart NetworkManager # CentOS 7+ ``` - **宿主机虚拟网卡**:在Windows中禁用并重新启用VMware虚拟网卡(如VMnet1/VMnet8)[^3]。 #### 5. **排查物理网络限制** - **公司网络策略**:若宿主机虚拟机通过公司局域网桥接,可能被路由器/交换机ACL限制。尝试改用**NAT模式**(需配置VMnet8子网)。 - **使用NAT模式示例**: - 虚拟机IP设为$192.168.10.2$,宿主机VMnet8 IP为$192.168.10.1$,网关为$192.168.10.254$[^4]。 #### 6. **验证通信抓包分析** - **双向ping测试**: - 宿主机ping虚拟机:`ping <虚拟机IP>` - 虚拟机ping宿主机:`ping <宿主机IP>` - **抓包工具**:在宿主机使用Wireshark监听虚拟机网卡,检查是否收到ICMP请求[^2]。 --- ### 配置示例(桥接模式) ```bash # CentOS网络配置(/etc/sysconfig/network-scripts/ifcfg-eth0) DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.150 # 宿主机同网段 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值