1、Linux修改本机别名/etc/hosts的hostName后经常不生效解决

Linux修改本机别名/etc/hosts的hostName后经常不生效,

比如我们/etc/hosts的内容如下:

#192.68.1.10 message.xxx.com
192.68.1.11 message.xxx.com

但是ping

message.xxx.com还是指向192.68.1.10。

一般2种解决方案:

1). 重启,这是最直接最可靠稳定的一种方法,如果有些时候不方便重启,则可以使用第二种方法。

2). 修改/etc/sysconfig/network文件,将HOSTNAME修改成对应的别名,如下:

NETWORKING=yes
HOSTNAME=host1
修改后重启网络服务
service network restart
(本质是/etc/init.d/network)
 
3).
如果重启服务器后,还是不起作用,应该是本机的dns缓存引起的。

查看nscd是否启用:
ps -ef|grep nscd

直接关闭Linux nscd 缓存服务:

/etc/init.d/nscd stop
 

2、Linux的DNS

linux本身是没有dns缓存的,想使用dns缓存的话需要自己安装一个服务程序NSCD(name service cache daemon).

nscd缓存三种服务passwd group hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL).

安装:

  yum install nscd

修改配置文件/etc/nscd.conf,开启dns缓存,修改这一行

  enable-cache hosts yes。

如果启用了nscd 服务,才有dns 缓存,否则是没有dns缓存的。

开启 、停止、 重启服务

service nscd start | stop | restart

nscd的配置:

通过编辑/etc/nscd.conf文件,在其中增加如下一行可以开启本地DNS cache:

enable-cache hosts yes

阿里云主机上的配置如下:

  1. [root@iZ2571ykq ~]# cat /etc/nscd.conf
  2. #logfile        /var/log/nscd.log
  3. threads         6
  4. max-threads     128
  5. server-user     nscd
  6. debug-level     5
  7. paranoia        no
  8. enable-cache    passwd      no
  9. enable-cache    group       no
  10. enable-cache    hosts       yes
  11. positive-time-to-live   hosts   5
  12. negative-time-to-live   hosts       20
  13. suggested-size  hosts       211
  14. check-files     hosts       yes
  15. persistent      hosts       yes
  16. shared          hosts       yes
  17. max-db-size     hosts       33554432

相关参数的解释如下:

logfile debug-file-name:指定调试信息写入的文件名。

debug-level value:设置希望的调试级别。

threads number:这是启动的等待请求的线程数。最少将创建5个线程。

server-user user:如果设置了该选项,nscd将作为该用户运行,而不是作为root。如果每个用户都使用一个单独的缓存(-S参数),将忽略该选项

enable-cache service <yes|no>:启用或禁用制定的 服务 缓存。

positive-time-to-live service value:设置 service 在指定缓存中正的项目(成功的请求)的TTL(存活时间)。 Value 以秒为单位。较大的值将增加缓存命中率从而减低平均响应时间,但是将增加缓存的一致性问题。

negative-time-to-live service value:设置 service 在指定缓存中负的项目(失败的请求)的TTL(存活时间)。 Value 以秒为单位。如果存在由不在系统数据库中的uid(用户ID)(例如在以root身份解包linux 内核源代码时)所拥有的文件将明显改善性能;应该维持较小的值以降低缓存一致性问题。

suggested-size service value:这是内部散列表的大小, value 应该保持一个素数以达到优化效果。

check-files service <yes|no>:启用或禁用检查属于指定 服务 的文件的改变。这些文件是 /etc/passwd, /etc/group, 以及/etc/hosts。

nscd的查看和清除

nscd缓存DB文件在/var/db/nscd下。

nscd -g  查看统计信息

清除 nscd缓存:

nscd -i passwd
nscd -i group
nscd -i hosts

当然也先删除缓存库或者停掉nscd服务:

rm -f /var/db/nscd/hosts

service nscd restart

或者是直接停止nscd 服务 
service nscd stop。

 
 
  1. 1、关于/etc/host,主机名和IP配置文件

    Linux操作系统下/etc/hosts文件配置方法

    Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同...

    1、关于/etc/host,主机名和IP配置文件

    Hosts - The static table lookup for host name(主机名查询静态表)

    hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在“/etc”目录下,文件名为“hosts”(不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname)。hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。

  2.  

    2、配置文件

    这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还是不可忽略的。在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有了域名。在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。

    Linux主机名的相关配置文件就是/etc/hosts;这个文件告诉本主机哪些域名对应那些ip,那些主机名对应哪些ip:

    比如文件中有这样的定义

    192.168.1.100 linumu100 test100

    假设192.168.1.100是一台网站服务器,在网页中输入http://linumu100或http://test100就会打开192.168.1.100的网页。

    通常情况下这个文件首先记录了本机的ip和主机名:

    127.0.0.1 localhost.localdomain localhost

  3.  

    3、配置文件格式说明

    一般/etc/hosts 的内容一般有如下类似内容:

    127.0.0.1     localhost.localdomain localhost

    192.168.1.100 linmu100.com linmu100

    192.168.1.120 ftpserver ftp120

    一般情况下hosts文件的每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。

    hosts文件的格式如下:

    IP地址 主机名/域名

    第一部份:网络IP地址;

    第二部份:主机名或域名;

    第三部份:主机名别名;

    当然每行也可以是两部份,即主机IP地址和主机名;比如 192.168.1.100 linmu100。

    这里可以稍微解释一下主机名(hostname)和域名(Domain)的区别:主机名通常在局域网内使用,通过hosts文件,主机名就被解析到对应ip;域名通常在internet上使用,但如果本机不想使用internet上的域名解析,这时就可以更改hosts文件,加入自己的域名解析。

  4.  

    hosts文件可以帮助解决哪些问题

    4.1 远程登录linux主机过慢问题

    有时客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长一段时间才会进入,这是因为linux主机在返回信息时需要解析ip,如果在linux主机的hosts文件事先加入客户端的ip地址,这时再从客户端远程登录linux就会变很快。

    注:这里所说的远程登录不仅仅是ssh,还可能是mysql远程登录,或是文件共享的查询等。

    4.2 双机互连

    当两台主机只是双机互连时,这时两台主机都需要设置自己的ip,同时在对方的hosts文件里加入自己的ip和主机名。

    5、主机名修改工具hostname;

    其实主机名的修改也有专用工具,就是hostname

    hostname - show or set the system’s host name

    显示主机名:

    # hostname

    linmu100

    此主机的主机名是linmu100,不加参数是用来显示当前主机的主机名;

    临时设置主机名:

    # hostname test100

    # hostname 注:显示主机名

    test100

    通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;

    显示主机IP:

    # hostname -i

    192.168.1.100

Linux修改本机/etc/hosts的hostName的更多相关文章

  1. Linux修改本机/etc/hosts的hostName后经常不生效

    1.Linux修改本机别名/etc/hosts的hostName后经常不生效解决 Linux修改本机别名/etc/hosts的hostName后经常不生效, 比如我们/etc/hosts的内容如下: ...

  2. Linux - 修改Cent OS系统的的hostname、配置DNS映射

    目录 1 修改方式 2 扩展: 配置DNS映射 本篇文章中, 示例设计到的操作系统是CentOS 6.5. 1 修改方式 ① 命令hostname onepiece -- 运行后设置立即生效, 但要在 ...

  3. LINUX 修改本机yum源为163镜像源

    进入yum源配置目录 [root@localhost yum.repos.d]# cd /etc/yum.repos.d/ 备份系统yum源,用于日后恢复. [root@localhost yum.r ...

  4. linux修改主机名(hostname)转载

    Linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  5. linux修改主机名的方法

    linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  6. Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系

    [root@localhost /]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.l ...

  7. linux下/etc/hosts 和hostname文件的区别

    很过人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts.其实不是的. hosts文件的作用相当如DNS,提供IP地址到hostn ...

  8. 深入理解Linux修改hostname

    当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问题给我好好上了一课,很多知识点,当你觉得你已经掌握的时候,其实你了解的还只是皮毛.技术活,切勿浅尝则止! ...

  9. 转: 深入理解Linux修改hostname

    from: http://www.cnblogs.com/kerrycode/p/3595724.html 写的相当详细!!! 深入理解Linux修改hostname 2014-03-12 10:17 ...

随机推荐

  1. 【一天一道LeetCode】#28. Implement strStr()

    一天一道LeetCode系列 (一)题目 Implement strStr(). Returns the index of the first occurrence of needle in hays ...

  2. Eclipse 项目以非gradle方式导入Android Studio

    对于以前习惯了Eclipse ide的开发这来说,要把项目导入到studio是一件很不愿接受的事情,但是...毕竟人家官方都给出建议了,并且年后会逐渐被淘汰 如下图所示是一个典型的eclipse项目. ...

  3. 某集团BI决策系统建设方案分享

    企业核心竞争能力的提升,需要强壮的运营管理能力,需要及时.准确.全面的业务数据分析作为参考与支撑. 某集团是大型时尚集团,内部报表系统用的QlikView,但是管理分配不够灵活,不能满足数据安全的要求 ...

  4. 重装Windows后修复Linux引导

    装了双系统(Windows和Linux)的机器重新安装Windows后会导致Linux的引导丢失而无法进入原先的Linux系统[其原因是Windows会覆盖原先MBR中的Linux的BootLoade ...

  5. OC中的枚举类型

    背景 一直对OC中的位移操作枚举不太理解,查找到两篇介绍OC中枚举的文章,觉得很不错. 什么是位移操作枚举呢? typedef NS_OPTIONS(NSUInteger, UIViewAutores ...

  6. CMake命令行添加编译参数

    CMake命令行添加编译参数 学习自 coroserver 例程: https://github.com/windoze/coroserver coroserver 是一个应用 Boost.Asio ...

  7. CRF资料

    与最大熵模型相似,条件随机场(Conditional random fields,CRFs)是一种机器学习模型,在自然语言处理的许多领域(如词性标注.中文分词.命名实体识别等)都有比较好的应用效果.条 ...

  8. linux 常见命令及说明杂记

    systemctl 命令: systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体.示例:systemctl is-enabled iptables.se ...

  9. 简单了解AJAX

    // ajax的俩个版本: var xmlhttp; if(window.xmlHttpRequest){ xmlhttp = new xmlHttpRequest(); }else{ xmlhttp ...

  10. nodejs+express blog项目分享

    项目简介:项目采用nodejs+express+typescript+mongodb技术搭建 主要功能: 1.用户注册 2.用户登录 3.文章管理模块 4.图片管理模块 5.token认证 6.密码加 ...