树莓派Ubuntu Mate16.04系统安装DNSMASQ

之前树莓派用的Rasbian系统,因为用不惯今天换了Ubuntu Mate。但是Ubuntu Mate16.04自带NM管理的dnsmasq-base。apt-get install dnsmasq的时候会提示你安装不了。找了半天解决方法最后在github上找到了,给大家分享一下。

1.把NetworkManager.conf中的dns=dnsmasq注释掉,然后重启NM

#cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.pkg
#cat /etc/NetworkManager/NetworkManager.conf \
| sed -e 's/dns=dnsmasq/#dns=dnsmasq/' \
> /etc/NetworkManager/NetworkManager.conf 
#/etc/init.d/network-manager restart


2.之后可以正常安装dnsmasq

#apt-get install dnsmasq


3.我之前备份出来了dnsmasq.conf,直接回拷了,具体配置如下

[email protected]:/etc/dnsmasq.d# grep ^[a-z] /etc/dnsmasq.conf 
resolv-file=/etc/resolv.dnsmasq.conf   #解析文件
server=223.5.5.5  #上游DNS
server=119.29.29.29
strict-order #按照解析文件nameserver的顺序解析
listen-address=127.0.0.1,192.168.1.145 #侦听地址
no-hosts #不加载本地host文件
cache-size=10000 #最大缓存数目
local-ttl=65535 #本地生存时间
dhcp-mac=set:client_is_a_pi,B8:27:EB:*:*:*


4.之前的解析文件我也备份了,如下

[email protected]#cat /etc/resolv.dnsmasq.conf

# Generated by resolvconf
nameserver 127.0.0.1
nameserver 223.5.5.5
nameserver 119.29.29.29


5.重启下dnsmasq服务

service dnsmasq restart 

这个时候报错了,service dnsmasq status看了一下,是/etc/dnsmasq.d/network-manager文件中bind-interface那行有问题。注释掉再重启服务成功。把设备的DNS指向侦听地址即可。


6.解析测试,成功缓存

树莓派Ubuntu Mate16.04系统安装DNSMASQ


总结:这篇文章主要是解决Ubuntu mate屏蔽自带的用NM运行的Dnsmasq实例,配置我们的Dnsmasq服务。

注意:虽然这确实起作用,但在系统启动时,我发现它有一点小小的缺陷 - Dnsmasq启动得太早,NetworkManager无法完成设置,直到Dnsmasq重新启动,导致没有DNS。

参考地址:https://gist.github.com/magnetikonline/6236150#ubuntu-1604lts--1404lts