1. dnsmasq的简介

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

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

2.程序安装

  • 01
  • 02
  • 03
  • 04
  • 05
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

  • 01
sudo vi /etc/dnsmasq.conf

取消注释下面7行

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
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

  • 01
sudo vi /etc/hosts

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

  • 01
192.168.xx.xx youdomains.com

4.配置上游dns服务器

  • 01
sudo vi /etc/resolv.conf

添加以下地址到首行

  • 01
  • 02
  • 03
nameserver 127.0.0.1 nameserver 8.8.8.8 nameserver 114.114.114.114

Tips

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

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
杀死进程 # kill -9 xxxx 停止服务 # systemctl stop dnsmasq 禁止开机启动 # systemctl disable dnsmasq

常用命令

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

Enjoy!