Linux Centos7使用ping命令ping不通网络的解决方案

本解决方案不配置dns,都是ping的IP地址,所以如果想ping域名,则加上DNS项的配置后自行尝试吧

我使用的虚拟机系统信息:

Linux:Centos7

Network:虚拟机设置的桥接模式(自动)

 

 

第一步,先来解决无法ping通外部网络的情况

cd /etc/sysconfig/network-scripts

# ifcfg-<网卡名称>
vim ifcfg-ens32

# 网卡配置内容

# 应该是自启动的配置项
ONBOOT=yes

  #BOOTPROTO="dhcp"
  BOOTPROTO="static"

 

  # 以下网关、IP、子网掩码改成自己的

  IPADDR=192.168.11.200
  NETMASK="255.255.255.0"
  GATEWAY=192.168.11.1

 

 然后上面配置好后,ping下IP:110.242.68.4(www.baidu.com)

 

常用配置项说明信息(Copy的):

TYPE=Ethernet    # 网卡类型:为以太网
PROXY_METHOD=none    # 代理方式:关闭状态
BROWSER_ONLY=no      # 只是浏览器:否
BOOTPROTO=dhcp  #设置网卡获得ip地址的方式,可能的选项为static(静态),dhcp(dhcp协议)或bootp(bootp协议).
DEFROUTE=yes        # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no     # 是不开启IPV4致命错误检测:否
IPV6INIT=yes         # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes    # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes     # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no     # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy   # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=ens34     # 网卡物理设备名称  
UUID=8c75c2ba-d363-46d7-9a17-6719934267b7   # 通用唯一识别码,没事不要动它,否则你会后悔的。。
DEVICE=ens34   # 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT=no #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备 
IPADDR=192.168.103.203   #网卡对应的ip地址
PREFIX=24             # 子网 24就是255.255.255.0
GATEWAY=192.168.103.1    #网关  
DNS1=114.114.114.114        # dns
HWADDR=78:2B:CB:57:28:E5  # mac地址

 

 

 

响应如下信息:connect: Network is unreachable  ;那么应该是网卡没有激活导致,继续往下

 

 

使用nmtui GUI工具看下网卡是否激活,如果没有激活,进行激活下;如果是bash窗口,没有GUI,那么使用nmcli或

ifup <网卡名称;例如:ens32>

进行激活下网卡使用,

尝试ping下: ping 110.242.68.4

 

如果还是不通,响应:connect: Network is unreachable ;那么你看下网关是否配置了,没有配置的话配置下。配置好后,应该就可以ping通外网了

 

第二步,如果能访问外网,但是虚拟机Centos7系统无法访问外机网络,那么就看下边的解决方案。

 

需要保证虚拟机Centos7配置的网络是一个子网下;子网掩码一致,IP的前三段一致,网关一致(网关就算你配置了,第四段的值依旧是255,不知道啥情况。。别说是广播地址什么的,毕竟网关是指定配置的)

 

如果出现这种情况,一直卡住(不会打印第二条信息的情况,也没有响应)的情况的话,那么以下的解决方案应该就能解决了。

 

 能ping通外网上的IP,但是无法ping到虚拟机所处的外机,

这种情况一般是window的防火墙导致,这里我们尝试把window正在使用的防火墙关闭,看下ping的信息是否能ping通,如果能ping通,这就是说明防火墙的原因。

 

这里我们配置下ICMP协议的入站规则:

 

 

 新建ICMP协议入站规则,看win10操作文档(https://docs.microsoft.com/zh-cn/windows/security/threat-protection/windows-firewall/create-an-inbound-icmp-rule),其中选择和填写的信息以上图为准就行了。

 

 

出站规则我这边没有配置,毕竟我这边并没有阻止ICMP协议的出站流量;官方解释如下图,红线是重点

 

 

# 20230705补充

如果能访问内网连通,但是无法访问外网的话,可能是路由表中没有默认路由,添加一项路由外网的路由到路由表中。具体的命令忘记了,可以网上搜索一把。

 

 

参阅

创建入站 ICMP 规则:https://docs.microsoft.com/zh-cn/windows/security/threat-protection/windows-firewall/create-an-inbound-icmp-rule

创建出站端口规则:https://docs.microsoft.com/zh-cn/windows/security/threat-protection/windows-firewall/create-an-outbound-port-rule

 

ICMP协议介绍:https://www.php.cn/faq/465856.html  , https://baike.baidu.com/item/ICMP/572452?fr=aladdin

ifup命令:https://www.linuxcool.com/ifup

 

 

posted @ 2022-02-16 12:19  星小梦  阅读(17620)  评论(0编辑  收藏  举报