添加或修改hosts的方法

在Linux下,我们通常使用下面的方式添加或修改hosts:

  • vim打开 /etc/hosts,添加或修改hosts之后保存:

    vim /etc/hosts
    
  • 重启网络:

    /etc/init.d/network restart
    

/etc/hosts 详解

  • /etc/hosts 是Linux的本地静态主机名查询表,负责 Linux 系统中IP地址与域名快速解析的文件,以ASCII格式保存在"/etc"目录下,文件名 "hosts" 可能会因为不同的 Linux 发行版本文件名不同,比如Debian的对应文件是 /etc/hostname;

  • hosts 文件包含了IP地址和主机名之间的映射,还包括主机名的别名,系统上的所有网络程序都优先查询该文件来解析对应于某个主机名的IP地址,否则就去网络中查找DNS服务来解析;

  • hosts 文件的格式为 IP地址 主机名/域名,一个IP地址可以指向多个主机名和域名,比如配置localhost localdomain zhanglei这三个主机名都是可以解析到本地主机的:

    127.0.0.1 localhost localdomain zhanglei
    

/etc/resolv.conf 详解

  • 上面说了/etc/hosts,这个文件还是比较好理解的,事实上,Linux 系统的hosts解析,/etc/resolv.conf 文件也很有价值了解一下;

  • /etc/resolv.conf 文件是DNS域名解析器使用的配置文件,用于设置DNS服务器的IP地址及DNS域名,这个配置文件将指定我们优先使用那个DNS域名解析器,当指定的DNS域名解析器无法解析域名和主机时,再去网络中的其他DNS域名解析器解析;

  • resolv.conf 文件格式如下所示:

    nameserver 10.3.155.31
    nameserver 10.3.155.32
    search baidu.com
    domain baidu.com
    domain www.baidu.com
    
  1. nameserver 最主要的关键字(必须有),定义DNS服务器的IP地址或主机名,如果没指定nameserver就找不到DNS服务器,一个文件可以有很多行的nameserver,每一个nameserver带一个IP地址,查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver;
  2. search 定义域名的搜索列表(非必须),它的多个参数指明域名查询顺序,当要查询没有域名的主机,主机将在由search声明的域中分别查找;domain和search不能共存,如果同时存在,后面出现的将会被使用;
  3. domain 定义主机的域名,很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到,功能和 search 相同
  4. sortlist 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。

备注:

  • search和domain的域名写的不完整时,比如baidu.com,domain和search就会将其补齐为www.baidu.com;
  • Red Hat (CentOS)中最小安装没有启动网络连接的时候,/etc/resolv.conf 文件是空的,它的内容将根据网卡第一次启动时,动态创建一个距离最近的DNS解析,或者是根据网卡配置生成DNS解析。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐