一、前言

2020年12月23日同事反馈打不开网站,QQ正常,初步怀疑是DNS故障,经排查为114.114.114.114 DNS问题,更换为移动DNS(211.142.211.124)后网络恢复正常。处理过程中ssh登录服务器等待时间长,百度后需要修改sshd配置文件/etc/ssh/sshd_config,关闭dns解析。主要参照了此博文https://www.cnblogs.com/kingstarer/p/14113999.html
。一波操作之后ssh登录速度正常了。

二、排坑过程

过了2天才发现整个服务器上不了网了。现象为此服务器下有运行在docker的spug服务,监控网站服务状态正常,宿主机本身访问外网IP地址通,访问域名失败,提示信息如下:

[root@s186 ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务

检查DNS配置正常

[root@s186 ~]# cat /etc/resolv.conf
#Generated by NetworkManager
nameserver 114.114.114.114
nameserver 8.8.8.8

在出口防火墙上可以抓到此主机访问外网的包,且有回包。

在宿主机上tcpdump抓包dns包,没有任何的dns包。

       不指定网卡可以抓到docker的dns请求和回包。

       至此确定是宿主机的问题,开始回忆这两天的配置调整。幸好本人有所有操作日志自动记录的习惯,找到了前天的操作系统,发现将nsswitch.conf这个配置文件hosts: files dns改为了hosts: files。修改回去后宿主机访问百度正常。自此排坑完成!

三、nsswitch.conf配置文件介绍

1、服务搜索顺序配置文件nsswitch.conf

nsswitch.conf(name service switch configuration,名字服务切换配置)文件位于/etc目录下,由它规定通过哪些途径以及按照什么顺序以及通过这些途径来查找特定类型的信息,还可以指定某个方法奏效或失效时系统将采取什么动作。
Nsswitch.conf中的每一行配置都指明了如何搜索信息,每行配置的格式如下:
Info: method[[action]] [method[[action]]…]
       其中,info指定该行所描述的信息的类型,method为用来查找该信息的方法,action是对前面的method返回状态的响应。action要放在方括号里。

2、nsswitch.conf的工作原理

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

1)、信息(Info)

Nsswitch.conf文件通常控制着用户(在passwd中)、口令(在shadow中)、主机IP和组信息(在group中)的搜索。下面的列表描述了nsswitch.conf文件控制搜索的大多数信息(Info项)的类型。

2)、方法(method)

下面列出了nsswich.conf文件控制搜索信息类型的方法,对于每一种信息类型,都可以指定下面的一种或多种方法:

3)、搜索顺序(从左至右)

两个或者更多方法所提供的信息可能会重叠。举例来说,files和nis可能都提供同一个用户的口令信息。如果出现信息重叠现象,就需要考虑将哪一种方法作为权威方法(优先考虑),并将该方法放在方法列表中靠左的位置上。
       默认nsswitch.conf文件列出的方法并没有动作项,并假设没有信息重叠(正常情况)。在这种情况下,搜索顺序无关紧要:当一种方法失败之后,系统就会尝试下一种方法,只是时间上受到一点损失。如果在方法之间设置了动作,或者重叠的项的内容不同,那么搜索顺序就变得重要起来。
例如下面两行nsswitch.conf文件配置行:
passwd files nis
host nis files dns
       第一行让系统在/etc/passwd文件中搜索口令信息,如果失败的话,就使用NIS来查找信息。如果正在查找的用户同时出现在这两个地方,就会使用本地文件中的信息,因此它就是权威信息。第二行先使用NIS搜索;如果失败的话,就搜索/etc/hosts文件;如果再次失败的话,核对DNS以找出主机信息。

4)、动作项([action])

在每个方法后面都可以选择跟一个动作项,用来指定如果由于某种原因该方法成功抑或失败需要做些什么。动作项的格式如下:
[[!]STATUS =action]
       其中,开头和末尾的方括号属于格式的一部分,并不是用来指出括号中的内容是可选的。STATUS(按照约定使用大写字母,但本身并不区分大小写)是待测试的状态,action是如果STATUS匹配前面的方法所返回的状态将要执行的动作。开头的感叹号(!)是可选的,其作用是将状态取反。

5)、compat方法:passwd、group和shadow文件中的"±"

可以在/etc/passwd、/etc/group和/etc/shadow文件中放入一些特殊的代码,(如果在nsswitch.conf文件中指定compat方法的话)让系统将本地文件和NIS映射表中的项进行合并和修改。
       在这些文件中,如果在行首出现加号’+’,就表示添加NIS信息;如果出现减号’-’,就表示删除信息。举例来说,要想使用passwd文件中的这些代码,可以在nsswitch.conf文件中指定passwd: compat。然后系统就会按照顺序搜寻passwd文件,当它遇到以+或者 开头的行时,就会添加或者删除适当的NIS项。
       虽然可以在passwd文件的末尾放置加号,在nsswitch.conf文件中指定passwd: compat,以搜索本地的passwd文件,然后再搜寻NIS映射表,但是更高效的一种方法是在nsswitch.conf文件中添加passwd: file nis而不修改passwd文件。

四、ssh连接慢问题处理


原因:DNS解析异常导致连接缓慢
解决方案一:
       以ssh -v调试模式远程登录,根据ssh调试信息,观察执行缓慢的开始位置。
若在debug1: SSH2_MSG_SERVICE_ACCEPT received开始慢,则需要修改服务端;若在debug1: Next authentication method: gssapi-with-mic开始慢,则需要修改客户端;若两者都慢,则客户端和服务端都需要修改。需要修改的文件均为resolv.conf。
解决方案二:
       linux环境修改/etc/ssh/sshd_config配置文件,将如下三个参数yes修改为no:
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UseDNS no

五、写在最后

我们遇到问题的时候通常百度一番就开始对着操作,这里反思几点。
1、如果是自己不清楚或者没有使用过的文件修改一定要先行确认;
2、修改解决了已知问题最后多做些验证是否有其他未知问题;
3、所有操作记录日志是一个好习惯。

Linux杂谈之nsswitch.conf配置文件相关推荐

  1. linux拷贝文件断电后丢失,linux突然断电重启,配置文件丢失/程序无法打开/文件损坏...

    电脑突然断电,重新开机后发现有的程序无法正常启动,原因是配置文件损坏了.感觉奇怪,为什么在硬盘里的文件会内容丢失? 1.可能:写数据的过程被中断,只完成了一部分.可能会出现乱码(因为只写了几个字节,不 ...

  2. linux的grup文件,Linux /boot/grub/grub.conf(GRUB配置文件)内容详解

    本节,我们就来看看 GRUB 的配置文件 /boot/gmb/grub.conf 中到底写了什么.命令如下: [rootdlocalhost ~]# vi /boot/grub/grub.conf d ...

  3. Linux系统故障修复-MBR损坏,grub.conf配置文件丢失

    MBR损坏 1.借助其他主机修复(需要拆硬盘) 2.使用紧急救援模式(常用,需要挂载完整的安装光盘) 模拟故障 一. 破坏MBR(446BootLoader),bs不要超过446,超过446就会破坏分 ...

  4. vsftpd的主配置文件是什么linux,vsftpd.conf配置文件详解

    vsftpd.conf配置文件详解 # 是否允许匿名用户登录.默认值为YES. anonymous=YES|NO # 是否允许匿名用户上传文件(如果设置为YES,则write_enable也必须设置为 ...

  5. linux的krb5文件放哪里,7.5.2 krb5.conf配置文件配置示例

    7.5.2  krb5.conf配置文件配置示例 在配置ads模式Samba服务器时,/etc/krb5.conf配置文件是必须配置的.它作为Kerberos身份验证模块,可以使Samba服务器对Wi ...

  6. Linux系统下的/etc/nsswitch.conf文件

    源贴:http://blog.csdn.net/waqwn/article/details/51687719 一.什么是nsswithch.conf(服务搜索顺序)文件呢? nsswitch.conf ...

  7. linux 服务搜索顺序文件 /etc/nsswitch.conf 简介

    目录 一.什么是nsswithch.conf(服务搜索顺序)文件呢? 二.nsswitch.conf的工作原理 1.信息(Info) 2.方法(method) 3.搜索顺序(从左至右) 4.动作项([ ...

  8. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  9. php apache 配置文件,Linux下apache支持PHP配置文件的方法

    本文用来记忆整了两天的lamp环境,如果对PHP没有要求建议全部用yum 一键安装,纯属个人经验,主要作用是用来参考的. yum install httpd #yum 安装Apache. php编译安 ...

最新文章

  1. Nginx安装成Windows服务
  2. docker安装zookeeper(单节点安装)
  3. BZOJ 1012 [JSOI2008]最大数maxnumber
  4. JAVA Feign
  5. Yahoo前端优化十四条军规
  6. 云计算商家必争之地 推荐几款云平台
  7. vscode 格式化json
  8. zoj 3581 A Simple Test 模拟题
  9. 应对需求变更的软件的设计——我的想法
  10. 一、公安备案与经营性备案
  11. linux系统中文乱码的问题
  12. c++如何在两个.cpp文件中使用同一个全局变量
  13. 寻找春天nbsp;九宫格日记-2011.08.24
  14. IPv4编址;A类、B类、C类、D类、E类IP地址(IP地址;网络地址和主机地址;子网掩码;网关;广播地址;)
  15. DailyTopic_4/16 B站:最有YouTube气质的视频网站
  16. 换帅之后,IBM能否再度起舞?
  17. ProxyPool 代理
  18. 软件与哲学(2)——对不同世界的抽象
  19. 打开vivado的.xpr工程文件报错Cannot locate target loader
  20. [内存管理]linux X86_64处理器的内存布局图(转自:http://blog.csdn.net/younger_china/article/details/16829687)

热门文章

  1. LED亮5秒灭5秒C语言程序代码,从单片机基础到程序框架(连载)
  2. 使用electron开发桌面音乐播放器
  3. IPy——Python中ip地址处理模块
  4. 直播|Milvus 实战系列 #4 MMUMMR 1.0:快手向量近似计算实践
  5. SeniorUI0503_Xfermode刮刮卡(橡皮檫)效果
  6. java框架都有哪些_Java框架内容:常用的框架有哪些?
  7. springboot webjars
  8. CentOS6.5系统光纤连接存储的多路径配置及使用方法
  9. 数据处理(一):python二维插值运算
  10. L298N和直流电机的使用