苏苏的博客

简约至极

编译dnsmasq

静态编译

dnsmasq静态编译十分简单,无任何其他依赖库

apk update && apk upgrade && apk add wget make gcc g++ linux-headers
cd /tmp && wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.76.tar.xz
tar Jxf dnsmasq-2.76.tar.xz && cd dnsmasq-2.76 && make CFLAGS=-Os LDFLAGS=-static

配置文件

dnsmasq能够缓存外部DNS记录,同时提供本地DNS解析或者作为外部DNS的代理,即dnsmasq会首先查找/etc/hosts等本地解析文件,然后再查找/etc/resolv.conf等外部nameserver配置文件中定义的外部DNS。所以说dnsmasq是一个很不错的DNS中继。DNS配置同样写入dnsmasq.conf配置文件里。

/etc/dnsmasq.conf

cache-size=500

resolv-file=/etc/resolv.conf

strict-order

listen-address=192.168.1.24

address=/ilanni.com/192.168.1.24

server=223.5.5.5

bogus-nxdomain=223.5.5.5

resolve-file定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取

strict-order表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。

listen-address定义dnsmasq监听的地址,默认是监控本机的所有网卡上。

address自定义域名解析的IP地址,在此已ilanni.com这个域名为例。注意dnsmasq是支持泛域名解析的,以上配置就是一个典型的泛域名解析实例。

address也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如下:

address=/ilanni.com/127.0.0.1

参考: https://www.freehao123.com/dnsmasq/