主机与虚拟机互ping不通的解决办法

一、主机ping不通虚拟机,但虚拟机可以ping主机

解决办法:

file-20250109211123323.png

二、虚拟机ping不通主机,但主机可以ping虚拟机

解决办法:

这里说的第一点我不知道,我是虚拟机可以ping通百度,之前虚拟机有过相关配置
我这里主要是win11电脑网络连接这里开启防火墙
file-20250109211144321.png

下面简单的说明下Vmware的网络连接方式:

当我们安装完VMware WorkStation的时候,它会帮我们安装两块虚拟网卡,分别是vmnet1,和vmnet8。VMnet1对应于Host-only, VMnet8对应于NAT,还有对应桥接模式的VMnet0。

VMware提供了如下的几种网络连接方式:

1、桥接网络,此时虚拟机的IP网段和主机的网段是一样的,虚拟机的虚拟网络适配器与主机的物理网络适配器进行交互,即虚拟网络适配器可以直接访问物理网络适配器访问外部网路。此时会使用局域网中的一个ip地址,并可以视为独立的计算机。

2、NAT(网络地址转换) NAT是network address translate的简称,什么是NAT方式连接,NAT就相当于父子关系一样,也就是说使用NAT时,本地主机就相当于虚拟机的网关。

3、Host-only 主机和虚拟机之间的网络互访, 但虚拟机访问不了Internet。

4、自定义网络连接模式

下面对各种模式的设置进行讲解:

桥接模式:直接在虚拟机设置中选择使用桥接模式,然后选择物理主机的网卡即可。

NAT模式:虚拟机可以使用与主机不相同的ip网段,仅需要检查vmnet8这一张网卡的ip地址网段是否和我们虚拟机的ip地址网段一样。虚拟机向外部发送请求数据包是通过NAT网络适配器加以“特殊标记”并以主机的名义进行转发,同样从外网返回的相应数据包也是先由主机进行接受,再度进行“特殊标记”后转发对应虚拟机。从外网查看虚拟机和主机对应共享一个ip,而外部网络无法直接访问到虚拟机。

Host-only 模式:同上,只是虚拟机使用vmnet1这张网卡,同时虚拟机并不能与除了主机之外的其他物理主机进行连接,而与物理主机之间连接的虚拟机之间可以进行通信(可通过在它们之间设置路由器来实现相互通信)。

套用一套人口户口的比喻:

“桥接模式的虚拟机,就像一个在路由器"民政局"那里"上过户口"的成年人,有自己单独的居住地址,虽然和主机住在同一个大院里,但好歹是有户口的人,可以大摇大摆地直接和外面通信。

NAT模式的虚拟机,纯粹就是一个没上过户口的黑户,路由器"民政局"根本不知道有这么个人,自然也不会主动和它通信。即使虚拟机偶尔要向外面发送点的信件,都得交给主机以主机的名义转发出去,主机还专门请了一位叫做NAT的老大爷来专门负责这些虚拟机的发信、收信事宜。

仅主机模式的虚拟机,纯粹是一个彻彻底底的黑奴,不仅没有户口、路由器"民政局"不知道这么号人,还被主机关在小黑屋里,连信件也不准往外发。“

### 主机Ping虚拟机但无法访问虚拟机上的服务 当遇到主机可以Ping虚拟机却无法访问虚拟机上运行的服务的情况时,这常是由于网络配置不当或防火墙规则未正确设置所致。 #### 网络配置检查 确保虚拟机采用的是桥接模式而非NAT模式。桥接模式使得虚拟机如同局域网中的独立设备一般工作,在这种情况下,它应该宿主机位于相同的子网内[^3]。如果使用的是其他类型的连接方式,则需确认这些方式支持双向信并进行了适当配置。 对于IP地址分配方面,建议手动指定静态IP而不是依赖DHCP自动获取,这样可避免因动态变化而引发的问题。具体来说,可在虚拟机内部以及宿主机器的安全选项里设定一致且兼容的IP参数,包括但不限于IP地址、子网掩码和默认网关等信息。 ```bash # 设置静态 IP 地址 (Linux 示例) sudo nano /etc/netplan/01-netcfg.yaml network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] ``` #### 防火墙规则调整 即使能够成功发送ICMP请求(即Ping命令),也不代表所有端口都是开放状态;某些应用程序可能会监听特定端口号来提供服务。因此,除了允许ICMP流量外,还需针对目标应用对应的TCP/UDP端口创建相应的入站规则以确保它们不会被拦截。 在Windows操作系统中,可以过图形界面轻松完成此操作: 1. 打开“控制面板”,点击进入“系统和安全” 2. 进入到“Windows Defender 防火墙”下的“高级设置” 3. 创建新的入站规则,选择要放行的具体程序或者自定义协议类型及其关联端口 4. 对于每条新建立起来的规则,请务必仔细审查其适用范围——比如仅限私人网络还是公共环境,并依据实际需求做出合理的选择 另外值得注意的一点是在Linux环境下,默认安装有`iptables`作为主要防护机制之一,同样需要对其进行相应配置才能保证外部正常访问所需资源[^4]。 ```bash # 开启 Linux 中的 iptables 规则以便接受 HTTP 请求 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值