DNSmasq

官方文档 http://www.thekelleys.org.uk/dnsmasq/doc.html
下载地址 https://thekelleys.org.uk/dnsmasq/

介绍

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

安装

1.编译安装

2.YUM安装

yum install dnsmasq -y

配置使用

  • resolv-file 定义dnsmasq从哪里获取上游DNS服务器地址,默认从/etc/resolv.conf获取
  • strict-order 表示严格按照 resolv-file 文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止
  • listen-address 定义dnsmasq监听地址,默认监听本机所有网卡。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址
  • address 启用泛域名解析,即自定义解析a记录。

address=/test.com/127.0.0.1 # 访问test.com的所有域名都会被解析为127.0.0.1

  • bogus-nxdomain
  • server 指定dnsmasq服务使用哪个DNS进行解析。对于不同的网站可以指定不同的域名进行解析,例如

server=/cn/114.114.114.114 # 表示所有的cn域名都使用114这个公共DNS

server=/google.com/8.8.8.8 # 表示对于google的服务使用谷歌的DNS进行解析

[root@demo1 ~]# vim /etc/dnsmasq.conf
resolv-file=/etc/resolv.conf
strict-order
listen-address=10.100.129.31
address=/demo.com/10.100.129.31
server=114.114.114.114
bogus-nxdomain=114.114.114.114
[root@demo1 ~]# systemctl start dnsmasq
[root@demo1 ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.100.129.31
domain demo.com		# 即使省略也未见异常
[root@demo1 ~]# yum install bind-utils -y
[root@demo1 ~]# nslookup www.demo.com

同局域网中只需要修改DNS地址指向10.100.129.31即可实现*.demo.com域名访问(域名解析至10.100.129.31)

[root@demo2 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.100.129.31

image.png

### Dnsmasq 配置与常见问题解决方案 #### 编辑配置文件时的注意事项 当编辑 `dnsmasq` 的配置文件(如 `dnsmasq.conf`),应确保遵循正确的语法格式,任何语法上的失误可能导致服务无法启动。建议仔细校验每一项设置,并利用官方文档作为参考来确认参数的有效性和正确性[^1]。 #### 关于 `/etc/resolv.conf` 和上游 DNS 设置 对于本机应用程序而言,它们会读取位于 `/etc/resolv.conf` 文件内的 DNS 服务器地址;而此文件通常会被设定指向运行着 `dnsmasq` 的设备。为了使本地网络里的其他计算机能够直接向 `dnsmasq` 发起请求,则需让这些机器同样将自身的 `/etc/resolv.conf` 设定成指向同一台 `dnsmasq` 实例。另外值得注意的是,`dnsmasq` 自身也需要借助外部的权威 DNS 来完成最终的名字解析工作,因此应当在 `/etc/resolv.dnsmasq.conf` 中指明可用的上级 DNS 地址列表,并且要在 `dnsmasq.conf` 中通过特定选项引入该文件的内容[^2]。 ```bash # Example of specifying upstream servers in dnsmasq configuration file server=8.8.8.8 # Google Public DNS server=8.8.4.4 # Secondary Google Public DNS ``` #### 常见错误及其处理方法 如果遇到由于配置不当引起的服务启动失败情况,可以从以下几个方面着手排查: - **验证配置文件合法性**:使用命令行工具测试配置文件是否存在明显错误。 ```bash sudo dnsmasq --test ``` - **日志分析**:查看系统日志或者专门的日志记录以定位具体原因 ```bash tail -f /var/log/syslog | grep dnsmasq ``` - **权限检查**:确认 `dnsmasq` 进程有足够的权限去访问所需的资源和端口 - **防火墙规则审查**:确保没有任何阻止 UDP/TCP 端口 53 (DNS) 流量的安全策略生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值