1 安装dnsmasq

sudo apt-get install dnsmasq

说明:/etc/resolv.conf是默认的文件,记录的是本机器的上游dns服务器。

2 设置dnsmasq配置文件

dnsmasq的默认配置文件是/etc/dnsmasq.conf

sudo vim /etc/dnsmasq.conf

设置dnsmasq的监听的地址,也就是本机ip地址

# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
listen-address=127.0.0.1, {ip_address} 
#({ip_address}添加自己的本机器ip地址)

测试dns服务器可以用dig(Domain Information Groper)和nslookup

若没有这些命令,先安装

ubuntu
sudo apt-get install dnsutils

debian
apt-get update
apt-get install dnsutils

centos
yum install bind-utils
dig @dns服务器的ip 网站域名
dig @1.0.0.1 www.bing.com

nslookup 网站域名 dns服务器的ip
nslookup www.bing.com 1.0.0.1

如果不想读取本机hosts,可以设置no-hosts

# If you don't want dnsmasq to read /etc/hosts, uncomment the
# following line.
no-hosts

测试dnsmasq配置

dnsmasq --test
dnsmasq: syntax check OK.

开启dnsmasq服务

service dnsmasq start

3 打开防火墙

默认的是53端口

打开端口
sudo iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp -m state --dport 53 --state NEW -j ACCEPT
保存规则
iptables-save > /etc/iptables-rules
ip6tables-save > /etc/ip6tables-rules
查看是否开启
iptables -n -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53 state NEW

其他设置

# Include all files in a directory which end in .conf 读取文件夹下所有的配置文件
conf-dir=/etc/dnsmasq.d/,*.conf

# Set the cachesize here.
cache-size=1024

/etc/dnsmasq.d/address.conf 可以对某个域名设置解析
server=/google.com/8.8.8.8 网站名称和要解析的dns服务器

可以直接对特定域名解析
address=/ad.xxx.com/127.0.0.1 可以把广告指向127.0.0.1屏蔽广告