用dnsmasq搭建dns服务器
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屏蔽广告