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