CentOS 7 部署 dnsmasq
文章目录
- (1)概述
- (2)dnsmasq的解析流程
- (3)重要参数说明
- (4)部署dnsmasq
- (5)其他内容
- (6)域名劫持
- (7)dns污染验证
- (8)dnsmasq优化
(1)概述
在本博客中,将介绍如何在CentOS 7上部署和配置dnsmasq,一个轻量级的DNS和DHCP服务器。dnsmasq可以用于本地域名解析、网络地址分配和DNS缓存等功能。
(2)dnsmasq的解析流程
dnsmasq的解析流程如下:
- 首先,不管是pc还是服务器都是会解析
hosts
文件,其中包含了一些自定义的域名和IP地址的映射关系。 - 然后,dnsmasq会解析
/etc/dnsmasq.d/
目录下的*.conf
文件,这些文件中可以定义更多的域名解析规则,这些规则的优先级高于dnsmasq.conf
文件。 - 如果以上解析步骤都没有找到对应的解析结果,dnsmasq会查询上游DNS服务器,即在
resolv.dnsmasq.conf
文件中定义的DNS服务器。
如果你不想使用hosts
文件进行解析,可以在/etc/dnsmasq.conf
中添加no-hosts
语句,这样dnsmasq将直接查询上游DNS服务器。同样,如果你不想进行上游查询,可以添加no-resolv
语句。
(3)重要参数说明
下面是一些经常修改的重要参数说明:
参数 | 说明 |
---|---|
resolv-file | 定义dnsmasq从哪里获取上游DNS服务器的地址,默认从/etc/resolv.conf 获取。 |
strict-order | 表示严格按照resolv-file 文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。 |
listen-address | 定义dnsmasq监听的地址,默认是监控本机的所有网卡上。 |
address | 启用泛域名解析,即自定义解析A记录。例如:address=/long.com/192.168.115.10 ,访问long.com 时的所有域名都会被解析成192.168.115.10 。 |
bogus-nxdomain | 对于任何被解析到此IP的域名,将响应NXDOMAIN使其解析失效。可以多次指定,通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点。 |
server | 指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。例如:server=/google.com/8.8.8.8 表示对于google.com 的服务,使用谷歌的DNS解析。 |
(4)部署dnsmasq
以下是在CentOS 7上安装和配置dnsmasq的示例步骤:
-
安装dnsmasq:
yum install -y dnsmasq
-
修改dnsmasq配置文件
/etc/dnsmasq.conf
:vi /etc/dnsmasq.conf
在配置文件中添加以下内容:
strict-order cache-size=10000 resolv-file=/etc/resolv.dnsmasq.conf addn-hosts=/etc/dnsmasq/hosts listen-address=10.0.0.35 log-facility=/data/dnsmasq_log/dnsmasq.log
-
创建dnsmasq的
hosts
文件:cp /etc/hosts /etc/dnsmasq/hosts
-
修改网卡的DNS配置文件(例如
ifcfg-eth0
):vi /etc/sysconfig/network-scripts/ifcfg-eth0
在配置文件中添加以下内容:
DNS1=223.5.5.5 DNS2=8.8.8.8
-
填写上游DNS服务器IP:
vim /etc/resolv.dnsmasq.conf
在文件中添加以下内容:
nameserver 8.8.8.8 nameserver 223.5.5.5
-
启动dnsmasq服务:
systemctl enable dnsmasq systemctl start dnsmasq systemctl stop dnsmasq
-
验证配置是否生效:
dig www.baidu.com
如果配置生效,将会返回与
www.baidu.com
相关的DNS解析结果。 -
或者使用pc客户端,配置dns服务器IP为DNS尝试解析
(5)其他内容
cache-size
:设置dnsmasq的DNS缓存条目数量,默认为150条。可以通过设置为0来禁用缓存。dns-forward-max
:指定DNS同属查询转发的最大数量。address
:除了用于解析A记录之外,还可以用于解析CNAME、MX、NS等记录类型。bogus-nxdomain
:可以用于阻止某些域名被解析到特定的IP地址,从而使其解析失效。server
:可以根据不同的域名指定不同的DNS服务器进行解析,这样可以实现灵活的解析策略。
(6)域名劫持
hosts
文件除了用于本地域名解析外,还可以用于域名劫持。
什么是域名劫持?
域名劫持是指将特定域名解析到指定的IP地址,从而实现对该域名的控制。
通过在hosts
文件中添加域名和IP地址的映射关系,可以将特定域名解析到指定的IP地址,而不是通过DNS服务器进行解析。这样可以实现对该域名的劫持,将用户的访问重定向到指定的IP地址上。
域名劫持通常用于以下情况:
- 广告屏蔽:可以将广告域名解析到一个不存在的IP地址上,从而屏蔽广告内容。
- 网络安全:可以将恶意域名解析到一个安全的IP地址上,阻止恶意软件的访问。
- 内部测试:可以将域名解析到内部测试服务器上,用于开发和测试目的。
例如,假设我们想将内网的某个服务通过域名,映射在dnsmasq服务器上,域名为www.joshzhong.com
劫持到IP地址192.168.1.100
,可以在hosts
文件中添加以下条目:
192.168.31.100 www.joshzhong.com
内网终端配置dnsmasq服务器IP为dns服务器,那么当用户访问www.joshzhong.com
时,系统会首先检查访问dnsmasq的hosts
文件,发现了对应的映射关系,就直接将其解析为192.168.31.100
,而不会向DNS服务器发起解析请求。
(7)dns污染验证
1、获取dig和nc工具
要在CentOS上获取dig和nc工具,可以使用以下命令进行安装:
# 安装dig工具
yum -y install bind-utils# 安装nc工具
yum -y install nc
以上命令将通过yum包管理器安装所需的工具。
2、验证DNS污染
一旦安装了dig和nc工具,你可以使用它们来验证DNS是否被污染。下面是一些示例命令:
# 通过114解析google域名
dig google.com @114.114.114.114 +short# 检测IP是否属于Google
echo -e 'begin\n142.251.42.238\nend' | nc bgp.tools 43
第一个命令使用dig工具以114.114.114.114为DNS服务器解析google.com域名,并显示结果。
第二个命令使用nc工具连接到bgp.tools的43端口,并发送IP地址。这将返回与该IP地址相关的网络信息,包括运营商。
如果第二个命令返回的运营商不是"Google LLC",则可以判断DNS被污染。
通过使用这些工具,你可以验证DNS是否被污染,并采取相应的措施来解决问题。
(8)dnsmasq优化
记录一下,之前通过设置不同地域的dns,来针对不同业务进行访问,确实又起到加速作用。
如果你使用国内的VPS来搭建本地DNS服务器,可以提高DNS响应速度并增加稳定性。以下是修改DNS配置和网络设置的步骤,以下通过内网10.0.0.35为例。请注意,这些配置仅供参考:
- 修改网卡配置:打开网卡配置文件进行编辑。
vi /etc/sysconfig/network-scripts/ifcfg-em2
- 修改上游DNS配置:打开resolv.conf文件进行编辑。
vi /etc/resolv.conf
在文件中添加以下内容:
nameserver 8.8.8.8
nameserver 223.5.5.5
nameserver 8.8.4.4
请按照这个顺序进行配置,以测试国内速度是否提升。
- 修改dnsmasq配置:打开dnsmasq.conf文件进行编辑。
vi /etc/dnsmasq.conf
根据你的需求,对文件进行相应的修改。
- 修改hosts文件:打开hosts文件进行编辑。
vi /etc/dnsmasq/hosts
根据你的需求,对文件进行相应的修改。例如,你可以将10.0.0.30的hosts文件复制到10.0.0.35,并重启dnsmasq服务,以实现对Google的正常访问。
-
修改ROS策略:在ROS的IP防火墙策略中,打开DNS服务器的IP设置。例如,国内流量走fenliu2,国外流量走fenliu10(SDWAN)。
-
验证:通过访问网站http://ip111.cn/进行验证。
当DNS解析正常时,将显示从Google测试获取的IP地址。如果测试不正常,可能会显示空白,并且无法打开google.com。
请根据你的具体需求和环境进行相应的配置和验证,以上内容仅供参考。
相关文章:
CentOS 7 部署 dnsmasq
文章目录 (1)概述(2)dnsmasq的解析流程(3)重要参数说明(4)部署dnsmasq(5)其他内容(6)域名劫持(7)dns污染验证&…...
DBA面试题
Oracle体系结构 (1)、Oracle实例内存中包含哪些部分? 答: sga与pga sga:是一组共享的内存区域,包含数据字典缓存、库缓存、重做日志缓冲区 Pga:为每个服务器进程分配的非共享内存,存储会话状态和私有SOL工作区 在Oracle数据库中&…...
源码解析:Apache RocketMQ重置消费位点
引入 reset offset,即重置消费进度,一般在以下场景中使用: 需要重新消费已经消费过的消息,重置到最早位置或根据时间进行重置。消息积压,不需要消费积压的消息,重置到最新位置,使其从最新位置…...
Python 自动化之处理docx文件(一)
批量筛选docx文档中关键词 文章目录 批量筛选docx文档中关键词前言一、做成什么样子二、基本架构三、前期输入模块1.引入库2.路径输入3.关键词输入 三、数据处理模块1.基本架构2.如果是docx文档2.1.读取当前文档内容2.2.遍历匹配关键字2.3.触发匹配并记录日志 3.如果目录下还有…...
Vue mixins详解
文章目录 前言Vue中的mixins详解什么是mixins简单例子mixins的特点mixins与vuex的区别mixins与公共组件的区别前言 在Vue中,mixins是一种可重用的代码片段,可以在多个组件中共享。它可以包含组件的选项,如data、methods、computed等,以及生命周期钩子函数。 本文将详细介…...
ssl证书问题导致本地启动前端服务报500
报错如下:注意查看报错信息 问题:系统原是http,后台调整为https后,ssl证书有点问题, vue项目本地服务,使用代理,webpack默认,证书强校验,导致请求无法发出,后…...
Rust 学习
Rust 官网:https://www.rust-lang.org/zh-CN/ 模块 库:https://crates.io/ 1、Rust 简介 Rust 语言的主要目标之一是解决传统 系统级编程语言(如 C 和 C)中常见的安全性问题,例如空指针引用、数据竞争等。为了实现这个…...
1.1 【应用开发】应用开发简介
写在前面 Screen图形子系统基于客户端/服务器模型,其中应用程序是请求图形服务的客户端(Screen)。它包括一个合成窗口系统作为这些服务之一,这意味着所有应用程序渲染都是在离屏缓冲区上执行的,然后可以在稍后用于更新…...
在windows系统搭建LVGL模拟器(codeblock工程)
1.codeblock准备 下载codeblock(mingw),安装。可参考网上教程。 2.pc_simulator_win_codeblocks 工程获取 仓库地址:lvgl/lv_port_win_codeblocks: Windows PC simulator project for LVGL embedded GUI Library (github.com) 拉取代码到本地硬盘&…...
2023第十四届蓝桥杯国赛 C/C++ 大学 B 组
文章目录 前言试题 A: 子 2023作者思考题解答案 试题 B: 双子数作者思考题解 试题 C: 班级活动作者思考题解 试题 D: 合并数列作者思考题解 试题 E: 数三角作者思考题解 试题 F: 删边问题作者思考题解 试题 G: AB 路线作者思考题解 试题 H: 抓娃娃作者思考题解 试题 I: 拼数字试…...
如何在页面中加入百度地图
官方文档:jspopularGL | 百度地图API SDK (baidu.com) 添加一下代码就可以实现 <!DOCTYPE html> <html> <head><meta name"viewport" content"initial-scale1.0, user-scalableno"/><meta http-equiv"Conten…...
Windows VC++提升当前进程权限到管理员权限
Windows VC提升当前进程权限 Windows VC提升当前进程权限到管理员权限 Windows VC提升当前进程权限到管理员权限 有时候Windows下我们需要提升当前进程的权限到管理员权限,相关VC代码如下: #ifndef SAFE_CLOSE_HANDLE #define SAFE_CLOSE_HANDLE(handl…...
算法leetcode|92. 反转链表 II(rust重拳出击)
文章目录 92. 反转链表 II:样例 1:样例 2:提示:进阶: 分析:题解:rust:go:c:python:java: 92. 反转链表 II: 给你单链表的…...
Chapter 7 - 3. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理
Pause Threshold for Long Distance Links长途链路的暂停阈值 This section uses the following basic concepts: 本节使用以下基本概念: Bit Time (BT): It is the time taken to transmit one bit. It is the reciprocal of the bit rate. For example, BT of a 10 GbE po…...
优雅玩转实验室服务器(二)传输文件
使用服务器最重要的肯定是传输文件了,我们不仅需要本地的一些资源上传到服务器,好进行实验,也需要将服务器计算得到的实验结果传输到本地,来进行预览或者报告撰写。 首先,由于涉及到服务器操作,我强烈推荐…...
动态面板简介以及ERP原型图案列
动态面板简介以及ERP原型图案列 1.Axure动态面板简介2.使用Axure制作ERP登录界面3.使用Asure完成左侧菜单栏4.使用Axuer完成公告栏5.使用Axuer完成左边侧边栏 1.Axure动态面板简介 在Axure RP中,动态面板是一种强大的交互设计工具,它允许你创建可交互的…...
漏刻有时百度地图API实战开发(12)(切片工具的使用、添加自定义图层TileLayer)
TileLayer向地图中添加自定义图层 var tileLayer new BMap.TileLayer();tileLayer.getTilesUrl function (tileCoord, zoom) {var x tileCoord.x;var y tileCoord.y;return images/tiles/ zoom /tile- x _ y .png;}var lockMap new BMap.MapType(lock_map, tileLaye…...
python 爬虫 m3u8 视频文件 加密解密 整合mp4
文章目录 一、完整代码二、视频分析1. 认识m3u8文件2. 获取密钥,构建解密器3. 下载ts文件4. 合并ts文件为mp4 三、总结 一、完整代码 完整代码如下: import requests from multiprocessing import Pool import re import os from tqdm import tqdm fro…...
mybatis中xml文件容易搞混的属性
目录 第一章、1.1)MyBatis中resultMap标签1.2)MyBatis的resultType1.3)MyBatis的parameterType1.4)type属性1.5)jdbcType属性1.6)javaType属性1.7)ofType属性 友情提醒: 先看文章目录ÿ…...
android Retrofit2.0请求 延长超时操作
import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory;public class MyApiClient {private static final String BASE_URL "https://api.example.com/";// 创建 OkHttpClient,并设置超时时间…...
Axure之动态面板轮播图
目录 一.介绍 二.好处 三.动态面板轮播图 四.动态面板多方式登录 五.ERP登录 六.ERP的左侧菜单栏 七.ERP的公告栏 今天就到这了哦!!!希望能帮到你了哦!!! 一.介绍 Axure中的动态面板是一个非常有用的组…...
一文读懂算法中的时间复杂度和空间复杂度,O(1)、O(logn)、O(n)、O(n^2)、O(2^n) 附举例说明,常见的时间复杂度,空间复杂度
时间复杂度和空间复杂度是什么 时间复杂度(Time Complexity)是描述算法运行时间长短的一个度量。空间复杂度(Space Complexity)是描述算法在运行过程中所需要的存储空间大小的一个度量。 时间复杂度和空间复杂度是衡量算法性能…...
LWIP热插拔功能实现
0 工具准备 1.lwip 1.4.1 2.RTOS(本文使用rt-thread)1 使能连接变化回调功能 打开lwipopts.h,将宏定义LWIP_NETIF_LINK_CALLBACK的值设为1,如下: #define LWIP_NETIF_LINK_CALLBACK 1这个宏定义被使能后会将…...
android下的app性能测试应主要针对那些方面,如何开展?
如何开展安卓手机下的App性能测试,对于优秀的测试人员而言,除了要懂得性能测试的步骤流程外,还应该懂的性能测试的一些其他知识,比如性能测试指标、各指标的意义,常用的性能测试工具、如何查看结果分析等等知识。所以本…...
【深度学习】注意力机制(二)
本文介绍一些注意力机制的实现,包括EA/MHSA/SK/DA/EPSA。 【深度学习】注意力机制(一) 【深度学习】注意力机制(三) 目录 一、EA(External Attention) 二、Multi Head Self Attention 三、…...
学习黑马vue
项目分析 项目下载地址:vue-admin-template-master: 学习黑马vue 项目下载后没有环境可参考我的篇文章,算是比较详细:vue安装与配置-CSDN博客 安装这两个插件可格式化代码,vscode这个软件是免费的,官网:…...
gdb本地调试版本移植至ARM-Linux系统
移植ncurses库 本文使用的ncurses版本为ncurses-5.9.tar.gz 下载地址:https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1. 将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2. 解压后进入到ncurses-5.9目录…...
《Linux C编程实战》笔记:实现自己的ls命令
关键函数的功能及说明 1.void display_attribute(struct stat buf,char *name) 函数功能:打印文件名为name的文件信息,如 含义分别为:文件的类型和访问权限,文件的链接数,文件的所有者,文件所有者所属的组…...
Python个人代码随笔(观看无益,请跳过)
异常抛错:一般来说,在程序中,遇到异常时,会从这一层逐层往外抛错,一直抛到最外层,由最外层把错误显示在用户终端。 try:raise ValueError("A value error...") except ValueError:print("V…...
Unity中实现ShaderToy卡通火(总结篇)
文章目录 前言一、把卡通火修改为后处理效果1、在Shader属性面板定义属性接收帧缓存纹理2、在片元着色器对其纹理采样后,与卡通火相加输出请添加图片描述 二、我们自定义卡通火1、修改 _CUTOFF 使卡通火显示在屏幕两侧2、使火附近屏幕偏红色 前言 在之前的文章中&a…...
做网站的前途/广州网站优化工具
我在构思这篇文章。我想象自己能够在时机成熟时,把自己的想法都倾诉于纸端。但刚刚过去一个月,我就意识到这并非易事:随着工作的推进,我忘掉了很多自己刚刚学到的东西。这些东西快速内化,使我的大脑开始欺骗自己&#…...
做设计都有什么网站/快速排名教程
使用终端登录Linux后使用vim编辑文本,这时在默认设置下载插入模式使用小键盘会插入一些非数字的字符。 更改的方法: 1.在文件(file)-- > 默认设置属性(Default setting properties)–> 终端(Termin…...
空间查看网站/正在播网球比赛直播
汽车芯片赛道的「卷」,或许超出了所有人的预期。对于单纯TOPS算力的比拼,已经翻篇,如何让车企有的用,用得上,还要用得好,已经是新风向。 实际上,在汽车智能化刚刚开始的2018年,彼时类…...
宁波网站开发公司电话/电商最好卖的十大产品
二叉树一般都是和递归有联系的,二叉树的遍历包括了前序,后序,中序,大部分题目只要考虑清楚应该用那种遍历顺序,然后特殊情况的条件,题目就会迎刃而解。 1. 先来说说二叉树的遍历方式 其实二叉树的遍历很简…...
简单易做的网站/个人网页设计作品模板
湘潭大学的EDA课程设计,可直接通过用VHDL设计交通灯控制器图a是一个十字路口交通灯控制示意图,H公路和V公路在路口各有两个红绿灯指示道路通行状况。图a 十字路口交通灯控制示意图对应图a的交通灯控制器,拟用VHDL语言设计一电路模拟其控制逻辑࿰…...
东莞网络建站公司/深圳高端seo公司助力企业
一、什么是缓存雪崩 当缓存服务器宕机或者在某一个时间段大量缓存集中失效,这时所有的请求都直接查询后端数据库,给数据库造成极大的压力甚至是宕机,从而引起应用服务器雪崩。 二、缓存雪崩的解决方案 对于缓存服务宕机造成的缓存雪崩&…...