要在Linux中配置DNS解析,最简单的方式当然是安装NetworkManager,利用它自动配置了。

yaourt -S networkmanager
sudo systemctl disable netctl
sudo systemctl enable NetworkManager
sudo reboot

不过如果对DNS性能有更高的要求的话,可以考虑利用dnsmasq在本机搭建DNS缓存服务器。

yaourt -S dnsmasq
sudo vim /etc/dnsmasq.conf #配置dnsmasq服务

参考如下配置:

no-resolv #dnsmasq服务器不使用resolv.conf文件进行解析
server = 127.0.0.1 #优先从本地缓存读取解析
server = 192.168.123.1 #此处填写路由器IP,如192.168.1.1或者192.168.0.1等
cache-size = 102400
listen-address = 127.0.0.1 #监听本地IP,提供解析服务
dns-forward-max = 8192 #dns查询的并发数最大值,如果太小会导致性能极大下降
no-negcache #失败的查询记录不缓存
local-ttl = 60 #客户机缓存时长(单位:秒)
max-cache-ttl = 600 #缓存时长(单位:秒)

保存配置文件后执行:

sudo systemctl enable dnsmasq #开机自启动dnsmasq服务
sudo systemctl start dnsmasq #马上启动服务
sudo vim /etc/resolv.conf #配置系统解析服务

nameserver 127.0.0.1加至第一行,然后执行:

sudo chattr +i /etc/resolv.conf #防止系统自动更改resolv.conf

此时,连续执行dig www.baidu.com两次,比较两次的Query time是否存在很大区别,就能判断服务是否正常运行了。

本文的配置过程针对于ArchLinux,对于其它Linux发行版而言,区别仅仅在于安装NetworkManager或dnsmasq的方法。

发表评论