Name or service not known问题解决和分析过程解析

2024-02-07 12:28

本文主要是介绍Name or service not known问题解决和分析过程解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目         录

一、问题描述

二、问题查处过程

(一)为何不能识别到bogon

(二)为何会出现bogon

(三)能不能更改bogon

(四)能识别其他host的名字

三、问题分析

四、问题解决

(一)解决掉bogon

1、查看dns

2、修改DNS

3、查看结果

(二)正常识别hostname

1、删除外部DNS解析

2、查看结果


一、问题描述

程序执行错误,查看日志信息发现出现:bogon 不能识别,于是进行如下查处:

[root@bogon vcms]#

[root@bogon vcms]# hostname

bogon

[root@bogon vcms]#

[root@bogon vcms]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

[root@bogon vcms]#

[root@bogon vcms]#vi /etc/hosts

认为bogon不在hosts列表,于是准备把bogon增加到hosts列表中,操作如下:

[root@bogon vcms]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 bogon

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6 bogon

[root@bogon vcms]#

[root@bogon vcms]#sudo systemctl restart network

[root@bogon vcms]#

程序仍然执行错误,查看日志信息发现出现:bogon 不能识别。

现在应该如何办?

二、问题查处过程

(一)为何不能识别到bogon

        Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件。如果/etc/hosts文件中有相应的记录,系统就会使用这个文件中的记录。因此,如果hostname在/etc/hosts文件中没有对应的条目,或者条目不正确,那么系统可能无法正确解析hostname。

        于是我们编辑/etc/hosts文件,把bogon添加到hosts文件中对应的条目,但是结果还是不行。

[root@bogon vcms]#hostname -i

hostname: Name or service not known    

(二)为何会出现bogon

       我们了解到,一般情况下,当centos系统的hostname变为bogon时,这通常是由于网络配置或DNS解析问题导致的。bogon一词通常用来表示一个虚假的、不存在的或无效的IP地址。

       看来,不能出现bogon。

(三)能不能更改bogon

       根据上面的情况,我们就像改掉这个bogon,但是尝试了各种办法,都没办法凑效!

(四)能识别其他host的名字

       我们尝试了一下,包括localhost, localhost.localdomain,都不能解析

        使用hostname -i,发现出现错误

        hostname: Name or service not known    

        

三、问题分析

        理论上,在CentOSlinux系统中,解析主机名是由Name Service Switch LibraryNSS)和DNS服务器共同处理的。具体流程为:

  1. 当一个程序需要解析一个主机名时,它会调用gethostbyname()函数来获取IP地址。
  2. NSS是Linux下的一个服务,它使用gethostbyname()函数从/etc/hosts文件中查找主机名对应的IP地址。如果找到匹配的主机名,则返回对应的IP地址。
  3. 如果在/etc/hosts文件中没有找到匹配的主机名,NSS会继续使用DNS服务器来解析主机名。它通过发出一个网络请求到DNS服务器,请求该主机名的IP地址。
  4. DNS服务器收到请求后,会查询其数据库来找到相应的IP地址,然后返回给客户端。
  5. NSS接收到DNS服务器返回的IP地址后,将其返回给原始调用者,完成主机名的解析。

        因此,我们需要重NSS和DNS服务器上入手。

四、问题解决

通过以上分析,我们理出思路,应该就是主机名解析的问题

(一)解决掉bogon

1、查看dns

[root@bogon vcms]#cat /etc/sysconfig/network-scripts/ifcfg-exxx

……………………..

DNS1=192.168.10.3

DNS2=221.8.16.1

2、修改DNS

[root@bogon vcms]#vi /etc/sysconfig/network-scripts/ifcfg-exxx

……………………..

DNS1=8.8.8.8

DNS2=114.114.114.114

[root@bogon vcms]# sudo systemctl restart network

3、查看结果

[root@bogon vcms]#

[root@bogon vcms]# hostname

localhost

[root@bogon vcms]#

看来凑效了。但是,错误依旧,如下图:

[root@bogon vcms]#

[root@bogon vcms]# hostname -i

hostname: Name or service not known    

[root@bogon vcms]#

(二)正常识别hostname

        分析到,可能是外部dns进行了名字解析,若把外部dns去掉呢?        

1、删除外部DNS解析

[root@bogon vcms]#vi /etc/sysconfig/network-scripts/ifcfg-exxx

……………………..

#DNS1=8.8.8.8

#DNS2=114.114.114.114

[root@bogon vcms]# sudo systemctl restart network

2、查看结果

[root@bogon vcms]#

[root@bogon vcms]# hostname

localhost

[root@bogon vcms]#

[root@localhost vcms]# hostname -i

::1 127.0.0.1

[root@localhost vcms]#

看来凑效了。

然后,程序执行OK,看到了成功运行的久违的界面。

这篇关于Name or service not known问题解决和分析过程解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687726

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.