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

相关文章

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s