简介
DNSmasq
是一个小巧且方便地用于配置DNS
和DHCP
的工具,适用于小型网络,它提供了DNS
功能和可选择的DHCP
功能。自己搭建公共DNS
更加灵活,如果是在本地搭建,还可以大幅提高解析速度。
安装DNSmasq
可以下载软件包编译安装,不过一般Linux
软件仓库已经提供了DNSmasq
,相关命令如下:
#centos安装
yum -y install dnsmasq
#如果是ubuntu系统
apt-get -y install dnsmasq
配置DNSmasq
DNSmasq
配置文件在/etc/dnsmasq.conf
,我们需要修改几个参数,分别为:
resolv-file=/etc/resolv.dnsmasq.conf
这个参数表示dnsmasq
会从这个指定的文件中寻找上游dns
服务器。- 取消注释的
strict-order
,表示严格按照resolv-file
文件中的顺序从上到下进行DNS
解析,
直到第一个成功解析成功为止。 - 注释掉
no-hosts
, 默认情况下这是注释掉的,dnsmasq
会首先寻找本地的hosts
文件再去寻找缓存下来的域名,最后去上游dns
服务器寻找。 - 设置
listen-address=0.0.0.0, 0.0.0.0
改成服务器公网IP
。
我们来整理下上面我们修改了那些配置内容
#需要新建一个resolv.dnsmasq.conf文件,这个是配置上游DNS,也就是真正的公共DNS
vi /etc/resolv.dnsmasq.conf
#内容如下
nameserver 119.29.29.29
nameserver 1.2.4.8
#修改/etc/dnsmasq.conf
#上游DNS路径
resolv-file=/etc/resolv.dnsmasq.conf
#取消strict-order注释
strict-order
#监听地址0.0.0.0对所有网络有效
listen-address=0.0.0.0
使用方法
DNSmasq
可以设置不同的域名指定不同的DNS
进行解析,修改/etc/dnsmasq.conf
文件即可,若不对域名设置DNS
,则从上游DNS
获取记录。
#指定淘宝使用114 DNS进行解析
server=/taobao.com/114.114.114.114
#google指定8.8.8.8进行解析
server=/google.com/8.8.8.8
也可以对指定的域名进行解析,相当于就是本地hosts
指向,可以利用这个功能实现广告屏蔽等效果。也是需要修改/etc/dnsmasq.conf
文件,DNSmasq
也可以对域名进行泛解析,填写*.moerats.com
,这样的格式即可。
#将广告域名指向到127.0.0.1实现广告屏蔽
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1
#对moerats.com进行泛解析
address=/*.moerats.com/132.165.25.188
启动与测试
#启动
/etc/init.d/dnsmasq start
#停止
/etc/init.d/dnsmasq stop
#重新启动
/etc/init.d/dnsmasq restart
比如我在本地一台Linux
服务器(192.168.20.127
)安装了DNSmasq
,并在局域网内其它PC
将DNS
配置为192.168.20.127
,使用dig
命令进行测试,第一次查询相对较长,第二次几乎再10ms
内,如下截图。
总结
如果是在内网搭建DNSmasq
,不仅可以提高解析速度,还可以有效的防止DNS
劫持,实现屏蔽广告等作用。如果是在公网搭建DNSmasq
,还可以对指定的域名解析hosts
指向,从而避免DNS
污染,实现fq
。
如果您发现DNSmasq
启动正常,但就是无法解析,请注意防火墙是否放行tcp/upd 53
端口。
未经允许不得转载:嘟嘟 » Linux VPS安装DNSmasq搭建自己的DNS服务器
最新评论
请问下,python3 tg_username_update.py都会提示下面这个是因为什么啊 Traceback (most recent call last): File "tg_username_update.py", line 21, in <module> cake = emojize(":cake:", use_aliases=True) TypeError: emojize() got an unexpected keyword argument 'use_aliases'
不可以了
# Install [Debian] [bullseye] [amd64] Downloading... grep: (standard input): binary file matches Error! grub.cfg. root@RRR2:~#
博主你好,请问cloudfront 上传收费这个是事实吧,已经找了几个贴子确认了。 那有什么好办法能够避开这个收费呢?如果不能避开感觉还是cloudflare 比较稳。
来看看
第5步添加自定义主机名进去后等txt验证提示custom hostname does not name to this zone
那没事了,我静态博客。谢谢
为什么缓存键和源请求那里不设置缓存?