CentOS7虚拟机ping不通外网,可以被外网ping通的解决办法

本文记录了一次在虚拟机中配置静态IP时遇到的问题,即能ping通内部但不能ping通外部域名。通过检查网关、路由和DNS设置,最终发现是静态配置时网关和DNS设置不正确导致的。解决方法包括确认并修改网关地址和设置正确的DNS地址,使得静态IP配置成功并能正常访问外部网络。

        今天搭集群配置静态地址的时候出现一个小问题,ping不通外部网络,但是IP可以被外部ping通。具体情况如下:

        工作中一般都使用动态获取地址,静态配置的方式已有点生疏,便翻了一下以前的笔记,OK,很简单。。。

        由于虚拟机之前已设置过NAT,便使用之前配置过的网段配了一个静态地址,重启网卡之后发现地址已变更为所配置的静态地址。

 虚拟网络编辑器

 静态地址配置信息

 ip信息已修改

        此时尝试ping外部网络,发现无法ping通,而外部可以ping通该地址。

 尝试ping百度的域名,失败

 本机ping虚拟机静态IP,成功

        由于该网段地址一直以来网络通畅,而使用的方式一直是dhcp,且本次ssh远程连接是成功的,因此猜测还是静态地址配置的时候什么地方写漏了或者写错了。将网络获取方式换回动态获取状态,查看此时的网关及路由等信息,发现网关的最后一位是2,而不是一般情况下的1。

 动态获取状态下的网关信息

        而配置静态地址的时候,GATEWAY设置的最后一位为1,将网关信息修改为与动态获取一致,重新ping一下外部网络,发现可以ping通IP,ping不通域名。回想起来,修改网关的时候,忘记同时修改DNS了,一般情况下,本地配置环境,DNS的地址和网关的地址需要一致,重新修改一下DNS的地址。

 配置网关地址与实际地址不一致

 ping外部IP成功,ping百度域名再次失败

 修改DNS地址与GATEWAY网关地址一致

        此时百度的域名已可以成功解析。总结一下,配置静态IP的第一步,需要先查看一下可使用的网关,一般情况下最后一段是1,而后再到配置文件中配置对应信息。当然,一般情况下直接配置也不会出错,如果出错了再回头重新查一下网关配置。

 成功ping通百度域名

        刚刚重新看了一下NAT的配置,其实不需要在服务器里面使用“netstat -rn”去排查网关信息,在NAT设置里面是有网关内容记录的,只不过这个网段设置并使用很久了,自己也不记得网关设置的具体地址了。如果是新配置的NAT,在配置静态地址的时候第一时间应该就会想起来该如何配置,本文供长时间未进行静态IP配置的小伙伴们排查问题哈~

 虚拟网络编辑器中NAT设置

 

 

CentOS虚拟机可以ping外网IPping不通百度,可能是DNS解析问题或者防火墙限制,以下是相应的解决办法: - **解决DNS解析问题**:若`/etc/resolv.conf`文件修改后重启被还原,可在CentOS 7系统中,找到`/etc/sysconfig/network-script/ifcfg-ens33`文件(不同版本系统文件名称可能不同,可过`ifconfig`命令,找到IP地址所属的网络对应的文件)。使用`vim`命令修改`ifcfg-ens33`文件中的内容,若发现`IPADDR`和`GATEWAY`与CentOS 7虚拟机的不一致,就将这两个地方更改为新的,保存退出,重新启动`network`服务,这样或许就能ping域名了。示例配置如下: ```plaintext TYPE="Ethernet" BOOTPROTO="none" IPADDR="192.168.126.12" PREFIX="24" GATEWAY="192.168.126.1" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="da8ec5ac-5651-4721-aded-be23900aa539" DEVICE="ens33" ONBOOT="yes" ``` - **检查防火墙设置**:执行以下命令开放与DNS相关的端口: ```bash iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -p udp -m udp --sport 53 -j ACCEPT iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT ``` 这些命令分别允许来自远程DNS服务器53端口的数据包进站、进入本地服务器53端口的数据包进站、从本地53端口出站的数据包出站以及去往远程DNS服务器53端口的数据包出站 [^1][^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值