resolv.conf在Linux系统中的作用

本人在工作中发现Linux 能PING IP, 但不能PING 域名。能PING IP 说明工作的主板网络是正常的,而无法PING 域名就显得有点不合理了,于是便从网络上查找原因发现大部分的解释都和 resolv.conf 这个配置文件相关。

一. resolv.conf 文件说明

resolv.conf是resolver类库使用的配置文件,每当一个程序需要通过域名来访问internet上面的其它主机时,需要利用该类库将域名转换成对应的IP,然后才可进行访问

关于设定resolv.conf 的参考文档:http://dns-learning.twnic.net.tw/bind/intro4.html

以下内容为参考文档的抄写(本人仅将繁体改为简体,便于本人阅读)


此档案可用来设定 DNS 用戶端要求名称解析时,所定义的各项內容。我们分別来看一个完整的resolv.conf的档案:

domain twnic.com.tw
nameserver 192.168.10.1
nameserver 192.168.2.5
search twnic.com.tw twnic.net.tw
				
  • “domain”指定本地的网域名称,如果查询时的名称沒有包含小数点,则会自动补上此处的网域名称为字尾再送给DNS伺服器。
  • “nameserver”指定用戶端要求进行名称解析的 nameserver IP位址,在此可指定多部DNS伺服器,则用戶端将会依序提出查询要求。
  • “search”这个选项为非必要选项,而功能在于若使用者指定主机名称查询时,所需要搜寻的网域名称。例如,当我们设 “search twnic.com.tw”时,当DNS伺服器在做名称解析过程中,无法对输入的名称,例如pc1,找出相对应的IP时,则DNS会利用search的设定值加上需查询的名称,即pc1.twnic.com.tw来进行解析,解析失败时则会尝试pc1.twnic.net.tw。
  • 需要注意的是当我们想尝试多种在沒有包含小数点,于字尾补上所需要搜寻的网域名称时,我们会在"search"中指定几种组合给DNS伺服器,而不能在"domain"中指定。因为“domain”是指定本地的网域名称,而搜寻时也以“domain”为优先尝试,如果失败之后才会尝试"search"中的组合。

二. nameserver IP 更改测试

看了上面的说明后,本人查看了/etc/resolv.conf 内容,发现没有内容,抱着试一试的态度向文件中添加了以下内容:

nameserver 10.1.1.3
nameserver 8.8.8.8

保存退出后,ping www.baidu.com 成功。

后面因工作需求想测试下下载速度,变使用 

wget -P /mnt/mmcblk0p1/ http://archive.kernel.org/centos-vault/6.1/isos/x86_64/CentOS-6.1-x86_64-LiveCD.iso

下载一个690M大小镜像进行网络测试,发现两个小时才下载了150M。

本人在查阅了DNS 服务器的介绍后,猜测网络是否与设定的DNS IP地址有关联,于是在resolv.conf 中做了如下改动:

nameserver 114.114.114.114
nameserver 10.1.1.3
nameserver 8.8.8.8

保存退出后,依然使用如下命令测试

wget -P /mnt/mmcblk0p1/ http://archive.kernel.org/centos-vault/6.1/isos/x86_64/CentOS-6.1-x86_64-LiveCD.iso

测试结果竟然是:二十分钟左右690M大小文件下载完成。

 

PS: 当然本人实验了几次,在同样的配置文件下,有时下载速度会很慢(还是有疑问?)。

       DNS 服务器地址介绍可以参考文档: https://www.cnblogs.com/bkchengzheng/p/5565769.html

你可能感兴趣的:(Linux)