Keep Learning

伪程序员记录点滴

Arch指定DNS服务器

学校里提供了IPv6的接入,但是之前使用的一直是学校提供的DNS服务器,使用的是IPv4的方式。在google上的IPv6的hosts文档上知道有IPv6的DNS服务器的地址,于是上网找了在Arch上设置DNS服务器的地址,简单记录如下。

修改/etc/resolv.conf的可修改性

由于学校使用的是DHCP的方式获取IP地址,Arch上使用的DHCP的客户端是dhcpcd,在默认情况下该服务器将会将获取的DNS服务器的地址填入到/etc/resolv.conf文件中。因此如果指定DNS服务器的方式,可以将该文件的文件设置为不可写。通过使用chattr +i /etc/resolv.conf的方式可以将该文件设置为不可修改的。
如果在网络的环境不变的情况下,使用该种方式便可以解决,但是由于在宿舍和在实验室的环境,这两个网络环境下学校指定的DNS服务器是不一样的,在使用校内提供的服务器时,还是用学校的DNS服务器便可以了,因此这种方法对自己而言还不是很合适。于是出现下面的方法。

增加/etc/resolv.conf.head文件

最想的还是根据适当的情况,将一个不变的DNS服务器增加到/etc/resolv.conf文件中,在打开/etc/resolv.conf文件时,可以看到这样一行:

1
# /etc/resolv.conf.head can replace this line

于是上网找了下这个文件的说明,似乎看到的是在/etc目录下新建一个名为resolv.conf.head的,dhcpcd客户端在将DNS服务器地址写入到resolv.conf文件时将会把resolv.conf.head文件的内容添加进入到resolv.conf文件中。因此可以通过在resolv.conf.head文件中添加内容来完成这个功能。

目前在电脑上使用的是第二种方法,完成了指定DNS服务器的方式,目前首选的是Google的IPv6服务器。

附录:目前可用IPv6的DNS服务器地址

根据Google上面提供的IPv6 DNS服务器的地址,目前摘抄如下:

  • ordns.he.net (最优)
      2001:470:20::2
      74.82.42.42 
    
  • google-public-dns-a.google.com (推荐)
      2001:4860:4860::8888
      8.8.8.8(不返回 Google 系列的 AAAA 记录)    
    
  • google-public-dns-b.google.com (推荐)
      2001:4860:4860::8844
      8.8.4.4(不返回 Google 系列的 AAAA 记录) 
    
  • ns.ipv6.uni-leipzig.de (西欧地区适用)
      2001:638:902:1::10
      139.18.25.34 
    

Comments