dnsmasq搭建

rpm 包下载:链接: https://pan.baidu.com/s/1m3CRYY59-Un8Tnrcsnru5w 提取码: du5v

rpm安装:
rpm -ivh nettle-2.7.1-8.el7.x86_64.rpm
rpm -ivh dnsmasq-2.76-16.el7_9.1.x86_64.rpm

yum 安装
yum install -y dnsmasq

1 vim /etc/dnsmasq.conf

修改以下内容
resolv-file=/etc/resolv.dnsmasq.conf    //dnsmasq 会从这个文件中寻找上游dns服务器
strict-order             //去掉前面的#,表示resolv-file 对应的文件中dns 会安装顺序找上游dns
addn-hosts=/etc/dnsmasq.hosts         //在这个目里面添加  ip   域名 记录
//监听地址 去掉就是任意服务器都能访问 此dns, 如果写这个 192.168.1.123  表示只有这个网段才能访问此dns 
//listen-address=127.0.0.1,192.168.1.123   保持注释掉

2、修改/etc/resolv.conf

echo 'nameserver 127.0.0.1' > /etc/resolv.conf

3、创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址

touch /etc/resolv.dnsmasq.conf
添加上游的DNS服务器,也就是公网DNS,这里添加阿里云的,或者114  ,如果是内网就用你们自己的dns
echo 'nameserver 223.5.5.5' >> /etc/resolv.dnsmasq.conf
echo 'nameserver 223.6.6.6' >> /etc/resolv.dnsmasq.conf
echo 'nameserver 114.114.114.114' >> /etc/resolv.dnsmasq.conf
echo 'nameserver 114.114.115.115' >> /etc/resolv.dnsmasq.conf

4、创建dnsmasq.hosts文件
添加记录

cp /etc/hosts /etc/dnsmasq.hosts
echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf
[root@ N# cat /etc/dnsmasq.hosts
127.0.0.1 localhost localhost localdomain localhost localhost. localdomain4
:1
[root@ N# cat /etc/dnsmasq.hosts
127.0.0.1 localhost localhost localdomain localhost localhost. localdomain4
:1
localhostlocalhost localdomain localhost localhost. localdomain6
## 以下添加了多个 域名以这种形式:     ip  域名  
192.199.3.25   milo1.com
192.189.3.206   menlo2.com
192.108.3.287   mInlo3.com
192.108.3.57    mInlo4.com
192.168.21.184  menlo5.com
192.168.21.195  milo6.com
192.168.21.146  mInlo7.com
192.168.21.19   mnlo8.com

5启动

systemctl start dnsmasq
systemctl status dnsmasq
systemctl stop dnsmasq

6 客户端使用

去其他虚拟机上dns 换成搭建好的 dnsmasq 那个主机上例如

192.168.21.184 menlo5.com
去 192.168.21.184 上修改 vim /etc

[root@n] cat /etc/resolv. conf
nameserver 192.108.3.287     

注意:192.108.3.287 就是安装了dnsmasq 的那个主机

后续改端口

如果你不想用53 端口,改用其他端口怎么办?

肯定要用nginx 转发,因为所有的dns客户端发出的UDP请求都目的端口都是53,这需要一个nginx 监听53 端口,然后转发到真正 的dnsmasq,服务器上
1 修改 vim /etc/dnsmasq.conf 中 #port 的配置打开例如配置15353端口

2 vim /etc/resov.conf
nameserver ip##此ip应该配置成 nginx

注意如下修改无意义,这是masq他自己的上游服务器地址。

vim /etc/resov.dnsmasq.conf
nameserver   ip##此ip应该配置成 没有就写127.0.0.1
systemctl  stop dnsmasq
systemctl start dnsmasq

整个过程:
ping xxx.com ---->nginx---->dnsmasq:15353

这里有个机制:
当我们dnsmasq 以53端口启动时候,这是 ping xxx.com, 操作系统会去看下53 是否有程序,如果有程序占用那就默认是dns服务器,所以使用53程序的 客户端发送dns请求,这时dns上游配置文件使用的是 dnsmasq.conf中配置的,/etc/resolv.dnamasq.conf,
如果 不是53端口启动,这时 ping xxx.com,操作系统发现没有程序占用53 端口,则会用操作系统默认的dns客户端发送 dns请求,则此时上游dns 服务器配置文件是: /etc/resolv.conf, 所以nginx代理后,要修改此文件!!!

nginx 文件

如果是docker 挂载路径: -v xxx/xxx/nginx.conf:/etc/nginx/nginx.conf

# Load balance UDP-based DNS traffic across two servers nginx  里就只配置下面的东西足够了
events {
    worker_connections  4096;
}

stream {
	upstream dns_upstreams {
		server 192.168.xxx.111:15353;
	}
	server {
 
		listen 53 udp;
 
		proxy_pass dns_upstreams;
 
		proxy_timeout 1s;
 
		proxy_responses 1;
 
	}
}

参考 https://blog.csdn.net/yanghua1012/article/details/80555487
https://blog.51cto.com/longlei/2065967

赠人玫瑰,手有余香,你的点赞,我的动力!

如果你能看到这里了,不如点赞关注一下,我会认真分享每一篇博文。大家共同成长。

我的公众号:茄子的笔记

更多分享可见:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值