DNSmasq快速起步
以下实践在Fedora 27上完成,除安装包可能和debian系列不同,其他配置方法应该通用。
安装
配置
笔记本电脑上已经安装了
libvirt
服务,启用了kvm虚拟化,此时会有一个监听在虚拟网卡virbr0
上的专用于虚拟网桥的DHCP和DNS服务的dnsmasq
服务,类似如下进程:
注意
dnsmasq
默认激活DNS服务,如果不需要它,则需要明确设置DNS端口为0
就可以避免启动DNS服务:
为避免影响kvm libvirt包含的dnsmasq服务,需要设置主机启动的dnsmasq
监听在特定的网卡上,编辑/etc/dnsmasq.conf
:
注意:根据注释可以知道,dnsmasq虽然可以通过
interface
来处理特定网卡的请求(即interface
参数),但是默认启动会绑定所有网卡的端口。所以仅仅使用interface
参数是不够的,还需要同时启用bind-interfaces
,这样才会在特定端口上启动绑定以及提供服务。
如果要监听多个接口,则类似设置
dnsmasq默认关闭dhcp服务,要激活dhcp服务需要将dhcp相关行注释去除。 (Disable dhcp service in dnsmasq)
设置DNS解析
对于局域网内服务器DNS解析,DNSmasq提供了非常简单明了的配置方法:/etc/hosts
和/etc/resolv.conf
。
/etc/hosts
是主机静态解析配置文件,DNSmasq通过读取这个配置文件,将解析配置加载后提供网络服务,这样就可以对整个局域网提供DNS解析,也就不再需要将相同的/etc/hosts
配置文件复制到各个主机上(同步配置):
/etc/resolv.conf
是解析器配置文件,DNSmasq根据这个配置文件可以找到转发DNS,以便解析非本域的主机名,例如,www.baidu.com 或者 www.apple.com等等。
注意:在Debian中,不建议直接修改
/etc/resolv.conf
,而是修改/etc/network/interfaces
配置文件,其中配置项会在系统启动时对应修改/etc/resolv.conf
:
这样启动后/etc/resolv.conf
就会修改成:
启动
激活系统启动时启动
启动dnsmasq
参考
Last updated