很多发行版已经可以直接安装dnsmasq了,可以用apt-get install dnsmasq
或者yum install dnsmasq
来安装,但安装的版本较低,接下来介绍一下debian8上编译安装的方法:
在这里查看最新的dnsmasq: http://www.thekelleys.org.uk/dnsmasq/
1 2 3 4 5 6 7 8 |
apt-get update apt-get install make gcc xz-utils -y wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.79.tar.xz tar -xvf dnsmasq-2.79.tar.xz cd dnsmasq-2.79 make make install cp dnsmasq.conf.example /etc/dnsmasq.conf |
编译安装或者apt
或yum
均是修改下面的文件
配置文件是/etc/dnsmasq.conf,修改vi /etc/dnsmasq.conf
只是简单的使用,修改以下的内容即可。
1 2 3 4 5 6 |
resolv-file=/etc/resolv.conf strict-order #listen-address=192.168.153.128 address=/demon.com/192.168.153.128 server=114.114.114.114 bogus-nxdomain=114.114.114.114 |
对参数的解释
resolve-file 定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
strict-order 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address 定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址,如果你的DNS服务器和你欲使用该DNS的设备不在同一个局域网则把你的公网地址放上去,这里可以同时设置多个IP。
cache-size 缓存设置。
1 |
listen-address=192.168.1.1,8.8.8.8 |
address 启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:
1 |
address=/demon.com/127.0.0.1 #访问demon.com时的所有域名都会被解析成127.0.0.1 |
bogus-nxdomain 为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
server 指定dnsmasq程序使用哪个DNS服务器进行解析。 对于不同的网站可以使用不同的域名对应解析如下配置
1 |
server=/google.com/8.8.8.8 #表示对于google的服务,使用谷歌的DNS解析。 |
因为这里的编译安装没有设置开机自启,我们设置一下开机自启,如果你采用apt
或者yum
方法来安装的话,不需要执行以下步骤。
通过编译安装的dnsmasq不支持systemd
的系统,当我们执行service dnsmasq start 或 systemctl restart dnsmasq 时会出现以下错误提示:
Job for dnsmasq.service failed. See 'systemctl status dnsmasq.service' and 'journalctl -xn' for details.
解决方法一:利用cron
来实现。
1 |
crontab -e |
加入以下内容
1 2 3 4 |
#开机自启动dnsmasq @reboot /usr/local/sbin/dnsmasq -C /etc/dnsmasq.conf #每隔三十分钟检测dnsmasq进程,如果不存在,则重启dnsmasq */30 * * * * [[ -z $(ps -e | grep dnsmasq) ]] && /usr/local/sbin/dnsmasq -C /etc/dnsmasq.conf |
解决方法二:让dnsmasq支持systemd
的系统(debian8/ubuntu16.04以上),将一下内容一起复制执行,不要单行复制
1 2 3 4 5 6 7 8 9 10 |
echo -e "[Unit] Description=dnsmasq servier After=network.target [Service] ExecStart=/usr/local/sbin/dnsmasq -C /etc/dnsmasq.conf --keep-in-foreground Restart=always [Install] WantedBy=multi-user.target" > /etc/systemd/system/dnsmasq.service |
以上配置完毕后,需要重启dnsmasq服务,重启完毕后其他机器,就可以通过该DNS服务器解析公网的域名。
1 |
systemctl restart dnsmasq |
通过netstat -lntp
查看dnsmasq是否监听53端口。如果提示-bash: netstat: command not found,则通过下面的命令安装
1 |
apt-get install net-tools -y |
查看监听端口的方法:https://www.quyu.net/info/1448.html
dnsmasq还有更强大的功能,具体内容可以查看官方文档:http://www.thekelleys.org.uk/dnsmasq/doc.html
感谢来源文章分享:https://zorz.cc/post/dnsmasq.html
声明: 本文由( 小天 )原创编译,转载请保留链接: Debian 搭建自己的DNS服务器,编译安装 dnsmasq 最新版
------====== 本站公告 ======------
欢迎使用趣域网域名百科,我们将长期提供域名使用相关知识和投资域名的方法和技巧;并提供主机、服务器的解决问题和网站运营方法。