ubuntu20.04上安装dnsmasq服务及dns缓存配置

简介: ubuntu20.04 安装dnsmasq服务, 缓存dns,加快网络地址解析

1. 禁用系统自带的dns服务

sudo systemctl stop systemd-resolved
sudo systemctl disable --now systemd-resolved
#备份/etc/resolv.conf
mkdir -p ~/bak
sudo mv /etc/resolv.conf  ~/bak/etc-resolv.conf

2. 安装dnsmasq服务

sudo apt install dnsmasq -y
#查看启动状态
sudo systemctl status dnsmasq

3. 配置/etc/dnsmasq.conf和/etc/resolv.conf

#1.备份dnsmasq.conf
sudo cp /etc/dnsmasq.conf ~/bak/etc-dnsmasq.conf
#2.sed 或vim 编辑配置文件
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=\/google.com\/223.5.5.5/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=\/cn\/114.114.114.114/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=\/qq.com\/119.29.29.29/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=/baidu.com/180.76.76.76/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=/taobaocdn.com/223.5.5.5/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=/taobao.com/223.5.5.5/g' /etc/dnsmasq.conf
sudo sed -i 's/#server=\/localnet\/192.168.0.1/#server=\/localnet\/192.168.0.1\nserver=/aliyun.com/223.5.5.5/g' /etc/dnsmasq.conf
#设置cache-size
sudo sed -i 's/#cache-size=150/#cache-size=150\ncache-size=1500/g' /etc/dnsmasq.conf
sudo sed -i "s/#resolv-file=\/etc/resolv-file=\/etc/g" /etc/dnsmasq.conf
#3.测试配置
dnsmasq --test
#4.重启服务
sudo systemctl restart dnsmasq
#5.配置/etc/resolv.dnsmasq.conf
sudo sed -i '1a\nameserver 8.8.8.8' /etc/resolv.dnsmasq.conf
sudo sed -i '1a\nameserver 114.114.114.114' /etc/resolv.dnsmasq.conf

4.设置本机dns

将本机dns设置为127.0.0.1 , 即可使用dnsmasq服务提供的dns缓存。

5.应用

5.1 屏蔽网页广告

将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。

address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1

5.2 指定域名解析到特定的IP上

可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。

address=/test.com/123.123.123.123

5.3 管理控制内网DNS

首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。

附录:

1. dnsmasq常用配置项

具体参数 参数说明
resolv-file 定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc/resolv.conf获取。
strict-order 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address 定义dnsmasq监听的地址,默认是监控本机的所有网卡上. 如:listen-address=127.0.0.1,192.168.x.x
address 启用泛域名解析,即自定义解析a记录,例如:address=/long.com/192.168.115.10 访问long.com时的所有域名都会被解析成192.168.115.10
bogus-nxdomain 对于任何被解析到此 IP 的域名,将响应 NXDOMAIN 使其解析失效,可以多次指定通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点
server 指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。
cache-size 制定dns缓存大小, 如cache-size=1500

2. 常用dns

腾讯 119.29.29.29
百度 180.76.76.76
阿里:223.5.5.5 / 223.6.6.6
114:114.114.114.114
Google:8.8.8.8/ 8.8.4.4 ipv6: 2001:4860:4860::8888 / 2001:4860:4860::8844
北京dns:202.96.199.133 / 202.96.0.133 / 202.106.0.20 / 202.106.148.1 / 202.97.16.195 / 202.138.96.2

3.常用的dnsmasq.conf配置

server=/aliyun.com/223.5.5.5
server=/taobao.com/223.5.5.5
server=/baidu.com/180.76.76.76
server=/qq.com/119.29.29.29
server=/cn/114.114.114.114
server=/google.com/223.5.5.5
cache-size=1500
相关文章
|
1月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
125 5
|
1月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
216 18
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
257 18
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
213 18
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
314 17
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
238 15
|
2月前
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
152 14
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
812 29
|
8月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
317 4
|
8月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关产品

  • 云解析DNS