ping 本机地址提示一般故障

遇上一问题,ping 127.0.0.1和localhost正常。ping本机IP显示一般故障,ping网关提示请求超时。
清除DNS后重启电脑,再输入网关地址可以解决。
这是什么情况,如何彻底解决呀

【相关推荐】



  • 你可以看下这个问题的回答https://ask.csdn.net/questions/247480
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Ping计算机名和Ping网站域名都是由DNS解析吗?
  • 除此之外, 这篇博客: 云主机内网通信ping不通问题处理过程中的 三、附录:DNS回顾 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    我们遇到域名解析问题,尤其从linux7过来的人,第一映像会怀疑DNS服务(named(bind&bind-util))异常导致的解析问题,或期配置文件问题。但DNS只是一种用于域名解析的服务进程;该服务是基于某个平台上来实现的,这个平台就是nsswitch。

    nsswitch全称为: network service switch(NSS:网络服务转换开关),它是一个通用框架,是各种类型库交互的公共实现,它被 GNU C库 和其他应用程序使用,以确定要从哪些来源、按什么顺序获取指定类别信息的解析服务。NSS的配置文件为:/etc/nsswitch.conf;该文件是纯 ASCII 文本文件,列由空格或制表符分隔。第一列指定数据库名称。其余列描述了要查询的源的顺序以及可以通过查找结果执行的一组有限的操作。类似如下:

    passwd:         compat
    group:          compat
    shadow:         compat
    
    hosts:          files mdns4_minimal [NOTFOUND=return] dns
    networks:       files
    
    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files
    
    netgroup:       nis
    

    /etc/nsswitch.conf它规定了通过哪些途径、按照什么顺序以及查找哪些特定类型的信息,还可以指定系统在某个方法生效或者失效时将采取什么动作。例如: 用户名到ID,或者ID到用户名,再或者IP到域名的查找方式。nsswitch加载了各类别的api接口,并以模块方式装载进nsswitch中,当程序发起nsswitch的api调用时,nswitch会自动完成到各类别中查找内容。需要注意的是nsswitch只提供平台,并不负责实际上的名称解析。nsswitch.conf 的每一行都规定了以什么方式进行搜索。

    某些发行版里,没有启用nscd服务(Name Service Cache Daemon),这时nsswitch可以控制dns(/etc/resolv.conf)和files(/etc/hosts)的解析顺序,顺序靠前的优先,一般配置顺序是:hosts: files dns。但是当开启nscd服务之后,不论nsswitch怎么配置,都是nscd缓存优先。nscd缓存的数据库文件位置:/var/db/nscd/hosts。NSS支持的服务规范取决于共享库的存在,因此是可扩展的。名为 /lib/libnss_SERVICE.so.X 的库将提供命名的 SERVICE,名为 SERVICE 的服务由位于 /lib 中的名为 libnss_SERVICE.so.X 的共享对象库实现。注意:nsswitch通常是为本机上的各种应用程序在名称解析时,完成各种解析库的对应的,nsswitch库需要跟各种对象接口解析交互,所以nsswitch对各种对应接口都有一个与之交互的实现方案。库位置:/usr/lib64/libnss和/lib64/libnss,其中libnss表框架,libnss_files-表驱动;

    也可以把NSS看做Linux里的一个工具,它为通用配置数据库和名称解析机制提供了各种来源。这些源文件包括本地操作系统文件(例如/etc/passwd、/etc/group和/etc/hosts)、域名系统(DNS)、网络信息服务(NIS)和LDAP

    1)NSS工作原理及名称解析流程

    在这里插入图片描述
    工作原理:

    实现将主机名转换成IP地址的这种解析机制,主要依赖两个关键库文件,分别为Libness_files(.so),Libnss_dns(.so),这两个都是库文件,库是需要被调用的,即如上图所示,调用的库对象就是上图中平台下的对应的店铺,而它们彼此之间建立关联关系就是通过nsswitch这个框架,而nsswitch对我们而言的展现形式就是库文件组织文件(/etc/nsswitch.conf)。/etc/nsswitch.conf 由 glibc 包提供,glibc 是 GNU 发布的 libc 库,即 C 运行库。 glibc 是 linux 系统中最底层的 api,几乎其它任何运行库都会依赖于 glibc。

    基本流程:

    应用程序 --> nsswitch(配置文件,查询顺序) --> 对应库文件 --> 解析库 --> 完成解析

    解析流程:

    当需要提供nsswitch.conf文件所描述的信息的时候,系统将检查含有适当info字段的配置行
    它按照从左向右的顺序开始执行配置行中指定的方法,在默认情况下,如果找到期望的信息,系统将停止搜索
    如果没有指定action,那么当某个方法未能返回结果时,系统就会尝试下一个动作。

    2)配置文件说明

    在这里插入图片描述
    配置文件格式:

    databases: method[[action]] [method[[action]]…]

    下面的列表描述了nsswitch.conf文件控制搜索的大多数信息(Info项)的类型。按照从左到右的搜索顺序,如果第一个没有找到,会自动到第二个method查询;

    在这里插入图片描述
    下面列出了nsswich.conf文件控制搜索信息类型的方法,对于每一种信息类型,都可以指定下面的一种或多种方法:

    在这里插入图片描述
    在这里插入图片描述

    NSS 中可用数据库如下:

    aliases 邮件别名, sendmail(8) 使用该文件.

    ethers 以太网号.

    group 用户组, getgrent(3) 函数使用该文件.

    hosts 主机名和主机号, gethostbyname(3) 以及类似的函数使用了该文件.

    netgroup 网络内主机及其用户的列表,访问规则使用该文件.

    network 网络名及网络号, getnetent(3) 函数使用该文件.

    passwd 用户口令, getpwent(3) 函数使用该文件.

    protocols 网络协议, getprotoent(3) 函数使用该文件.

    publickey NIS + 及 NFS 所使用的 secure_rpc 的公开密匙.

    rpc远程过程调用名及调用号,getrpcbyname(3) 及类似函数使用该文件.

    services 网络服务, getservent(3) 函数使用该文件.
    \
    shadow shadow 用户口令, getspnam(3) 函数使用该文件.

    3)解析文件查找命令:getent

    作用:手动查找对应的解析文件位置,即从nisswitch库中查找记录
    语法:getent DATABASE [key]

    getent passwd root
    getent services ssh

    4)解析优先级

    /etc/hosts》/etc/sysconfig/network-scripts/ifcfg-eth0》/etc/resolv.conf

    注:/etc/resolv.conf配置里的search含义

    search local.xx local.yy //当nslookup www查询失败时,会继续查询www.local.xx,如果仍然失败,继续查询www.local.yy

    其他参考:

    file /etc/hosts not working [SOLVED]ping详解

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可能是三个方面的问题:
1,网卡驱动问题:您的网卡驱动可能存在问题,导致无法正确地与本地 IP 进行通信。您可以尝试禁用并重新启用网卡,或者检查驱动程序是否有更新,更新到比较新的版本。

2,IP 地址冲突:如果有另一个设备在网络上使用了相同的 IP 地址,可能会导致通信问题。确保您的 IP 地址在您的网络中是唯一的。

3,操作系统问题:偶尔,操作系统中的一些问题可能会导致网络通信故障。重启计算机可以帮助解决。Windows遇到的很多问题,找不到解决办法就重启,大多数时候都可以解决。

一般性故障是没有可用路由,route print -4检查一下路由,没用对应的直连或者默认路由就会打印这个,检查网卡是否激活?