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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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月前
|
存储 缓存 网络协议
如何防止DNS缓存中毒攻击(一)
DNS缓存中毒也称为DNS欺骗
51 10
|
1月前
|
缓存 网络协议 安全
如何防止DNS缓存中毒(Ⅱ)
服务器应该配置为尽可能少地依赖与其他DNS服务器的信任关系
45 10
|
1月前
|
存储 缓存 安全
在 Service Worker 中配置缓存策略
Service Worker 是一种可编程的网络代理,允许开发者控制网页如何加载资源。通过在 Service Worker 中配置缓存策略,可以优化应用性能,减少加载时间,提升用户体验。此策略涉及缓存的存储、更新和检索机制。
|
1月前
|
缓存 网络协议 安全
如何防止DNS缓存中毒(Ⅱ)
防止DNS缓存中毒的方法包括:减少DNS服务器与其它服务器的信任关系;限制DNS服务器上的服务;使用最新版DNS;加强用户安全教育,如识别可疑网站,仅访问HTTPS网站等。部署SSL证书并选择符合国际Webtrust标准的CA机构,可进一步提高安全性。
51 1
|
1月前
|
存储 缓存 监控
配置 Webpack 5 持久化缓存时需要注意哪些安全问题?
【10月更文挑战第23天】通过全面、系统地分析和应对安全问题,能够更好地保障 Webpack 5 持久化缓存的安全,为项目的成功构建和运行提供坚实的安全基础。同时,要保持对安全技术的关注和学习,不断提升安全防范能力,以应对日益复杂的安全挑战。
|
1月前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
276 1
|
1月前
|
存储 缓存 网络协议
如何防止DNS缓存中毒攻击(一)
DNS缓存中毒,即DNS欺骗,是一种通过利用DNS系统的漏洞,将用户流量从合法服务器导向虚假服务器的网络攻击。攻击者通过伪造DNS响应,使缓存服务器存储错误的IP地址,从而实现对合法URL的劫持。这不仅可能导致用户信息泄露,还可能使用户设备遭受恶意软件感染,对金融、医疗等关键领域造成严重影响。据统计,DNS攻击每年造成的平均损失高达223.6万美元,其中23%的攻击源自DNS缓存中毒。
66 0
|
2月前
|
JSON JavaScript 前端开发
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
103 0
|
4天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
118 85
|
2月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
82 6

相关产品

  • 云解析DNS