【运维笔记】VM 记录一次centos虚拟机和宿主机之间ping不通的问题

本文讲述了在CentOS7环境下使用VMwareWorkstation16Pro时,遇到虚拟机无法ping通外网的问题。通过检查网络配置、设置正确网关、DNS和网卡参数,最终解决了宿主机与虚拟机之间的通信问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

  • 环境:centos7,静态ip
  • VM版本:VMware Workstation 16 pro,网络为nat映射模式
  • 问题:
    • 一开始,虚拟机可以ping通宿主机,也可以ping通,也可以ping通外网(如 ping www.baidu.com
    • 再后来,宿主机可以ping通虚拟机,虚拟机无法ping通外网(如 ping www.baidu.com ping 110.242.68.66),但可以ping通网关

解决方法

首先查看VM网络配置

进入编辑-虚拟网络编辑器
在这里插入图片描述
点击NAT设置
在这里插入图片描述
可以看到网卡名为VMnet1

  • 记录网关IP
    在这里插入图片描述

这里网关ip为192.168.188.2
子网ip为192.168.188.0
子网掩码为255.255.255.0

查看虚拟机网络配置

  • 查看网卡ip addr
    在这里插入图片描述
    这里的ip地址为192.168.188.131

  • 查看网关ip route
    在这里插入图片描述
    可以看到网关是对的,为192.168.188.2,如果不对则需要进行下一步修改VM网络配置的操作

  • ping 网关ping 192.168.188.2(这里填写上一步得到的网关)

在这里插入图片描述
可以看到能ping通

  • 查看DNS配置
    sudo vim /etc/NetworkManager/NetworkManager.conf
    在这里插入图片描述
    看到dns=none,如果不是,则修改成上面步骤

查看dns nameserversudo vim /etc/resolv.conf
在这里插入图片描述
可以看到nameserver地址和网关地址一致,如果不是则改成网关地址

如果上面两步dns配置有修改,则使用 sudo systemctl restart network 重启网络服务

修改虚拟机网络配置(如果查看网络配置没问题则跳过)

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33(ens33改为自己的网卡)
在这里插入图片描述
BOOTPROTO=static
ONBOOT=yes
IPADDR=自己的ip地址,需要在自己的子网内
NETMASK是VM上看的子网掩码
GATEWAY是VM上看的网关地址

如果有异常,请修改成正确的

修改后使用 sudo systemctl restart network 重启网络服务

宿主机虚拟机互ping

  • 宿主机ping虚拟机
    在这里插入图片描述

第一个ip192.168.188.1是网卡的ip地址,能ping通
第二个ip192.168.188.2 是网关地址,ping不通就有问题了
第三个ip 192.168.188.131 是虚拟机地址,ping不通,因为网关ping不通,虚拟机自然也ping不通了

  • 虚拟机ping宿主机
    在这里插入图片描述
    第一个ip 192.168.31.136 是宿主机地址,可以再宿主机上通过cmd 输入ipconfig查看,ping不通
    第二个ip 192.168.188.2 是网关地址,能ping通,说明VM网关配置是正常的
    第三个ip 192.168.188.1 是网卡ip,不能ping通,返回了目的主机不可达

目的主机不可达是啥原因?使用上古搜索引擎寻找一下答案
在这里插入图片描述
其实这里的12,通过上面的ping的情况来看,都被排除了,只剩下3和4了

修改网卡配置

我是win10用户,进入控制面板(可以左下角搜索进入)- 网络和Internet - 网络和共享中心 - 更改适配器设置进入下面界面
在这里插入图片描述

VM的自定义网卡为VMnet1这个网卡,可以在第一步看到
右键VMnet1这个网卡,点击属性

在这里插入图片描述

找到Internet协议版本4后点击它,再点击属性

在这里插入图片描述
好家伙,默认网关没配。。。。

这里ip地址改成同一子网下其他地址就行,不要跟网关和虚拟机ip地址冲突了,这里配成192.168.188.1
子网掩码和VM上网络配置子网掩码相同
默认网关为VM上的网关地址
DNS可以配一下两个:
114.114.114.114
8.8.8.8
如下图所示
在这里插入图片描述

  • 禁用网卡再启用,再ping一下虚拟机地址
    在这里插入图片描述
    可以看到正常

  • 虚拟机ping外网
    在这里插入图片描述

也可以看到正常

至此,问题解决

参考资料

### 解决CentOS 7宿主机虚拟机之间网络连通性的方法 对于CentOS 7宿主机无法ping虚拟机的情况,这通常涉及多个方面的问题排查。确保虚拟机的网络接口配置正确至关重要[^1]。 #### 虚拟机网络模式的选择 确认所使用的虚拟机管理程序中的网络适配器设置为桥接模式(Bridged Mode),而非NAT或仅主机(Host-only)模式。桥接模式允许虚拟机直接连接到物理网络,如同一台独立设备一样工作于同一局域网内。 #### 配置防火墙规则 检查并调整Linux系统的firewalld服务设置,以开放ICMP请求响应路径。可以临时关闭防火墙来测试是否为此原因造成不通: ```bash sudo systemctl stop firewalld ``` 如果确实是因为防火墙阻止,则应添加相应规则而不是完全禁用它。例如,在`/etc/firewalld/zones/public.xml`文件中加入如下内容: ```xml <rule family="ipv4"> <protocol value="icmp"/> <accept/> </rule> ``` 之后重启firewalld使更改生效。 #### 设置SELinux策略 当遇到由于安全增强型Linux (SELinux) 导致的通信障碍时,可以通过修改其配置文件 `/etc/selinux/config` 中的参数 `SELINUX=enforcing` 改成 `permissive` 或者 `disabled` 来排除干扰因素;不过建议先尝试更宽松的安全上下文标签处理方式,比如执行命令: ```bash setsebool -P allow_vmware_vsock true ``` 尽管上述例子针对的是VMware产品线,但对于其他类型的hypervisor也有类似的布尔值开关可供调节。 #### 测试网络接口状态 利用ifconfig工具查看各端口的状态信息,并验证IP地址分配无误。另外还可以通过arping实用程序向目标MAC地址发送ARP广播包来进行进一步诊断。 ```bash arping -I eth0 192.168.x.y ``` 这里假设eth0是外部访问出口而192.168.x.y代表要探测的目标机器公网IP。 #### 安全组其他云平台特定限制 如果是基于云计算环境部署的话,还需留意是否有额外的安全组规则或者其他形式的ACL列表影响到了数据报交换过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值