1. dnsmasq的简介

DNS 即域名解析服务器,本文将使用dnsmasq软件搭建。dnsmasq为轻量且易配置程序,适用于个人或小于50台主机的网络。

  • DNS劫持或反DNS劫持使用,任意输入一段域名,正常情况浏览器无法找到服务器,通过DNS服务器可以转到一个指定页面,或者禁止访问某一网站或IP。
  • 智能DNS加快解析速度,受制于天朝城墙,访问速度会有数秒延迟,通过指定DNS即可加速网页访问,甚至打开无法访问页面。

2.程序安装

sudo apt -y update && sudo apt -y upgrade
sudo apt -y install dnsmasq dnsutils ldnsutils
sudo ufw allow 53		# 打开防火墙53 端口
sudo service dnsmasq start
sudo service dnsmasq status		#确认程序是否运行

3.配置Dnsmasq

sudo vi  /etc/dnsmasq.conf

取消注释下面7行

domain-needed
bogus-priv
local=/yourdomains/
listen-address=127.0.0.1,192.168.0.6		#192.168.0.6为你的局域网ip/
expand-hosts
domain=yourdomains
cache-size=10000

修改hosts

sudo vi /etc/hosts

添加以下你要转接的虚拟域名及ip地址

192.168.xx.xx	 youdomains.com	

4.配置上游dns服务器

sudo vi /etc/resolv.conf 

添加以下地址到首行

nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 114.114.114.114

Tips

每次修改文件必须重启dnsmasq服务才能生效,防火墙开放tcp/udp53端口。
当出现错误时,多因为53端口被占用,尝试以下命令

杀死进程
# kill -9 xxxx
停止服务
# systemctl stop  dnsmasq
禁止开机启动
# systemctl disable dnsmasq

常用命令

dnsmasq --test						# 检查所有配置文件语法是否正确
systemctl start|stop|enable dnsmasq	# 启动|停止|开机自启dnsmasq
ss -tunlp | grep 53					# 查看端口号(53)
dig|nslookup www.test.cn	    	# 用dig或nslookup测试DNS能否解析到IP地址

Enjoy!