使用dnsmasq自建个人DNS
本文章使用Centos7系统
-
介绍
Dnsmasq是一个常用的轻量级DNS和DHCP服务器软件。它可以在计算机网络中充当本地DNS服务器,并提供DNS解析和DHCP分配IP地址的功能。Dnsmasq是一个开源工具,它具有简单、易用、资源消耗低等特点,因此在小型网络环境中广泛使用。
Dnsmasq具有以下主要功能:
- DNS转发和解析:Dnsmasq可以将DNS请求转发给上游DNS服务器,并缓存解析结果。这样,在网络中的设备可以通过Dnsmasq快速地获取域名解析结果,减少对上游DNS服务器的访问频率,提高解析速度。
- DHCP服务器:Dnsmasq还可以作为本地网络的DHCP服务器,为连接到网络的设备分配IP地址、子网掩码、网关地址等网络配置信息。它可以管理IP地址池,自动分配可用的IP地址,并支持动态IP地址分配和静态IP地址分配。
- 本地主机名解析:Dnsmasq可以将局域网内的主机名映射到对应的IP地址,以提供本地网络内部的主机名解析服务。这对于内部服务器、网络共享和设备管理非常有用。
- TFTP服务器:Dnsmasq还可以作为TFTP(Trivial File Transfer Protocol)服务器,用于在网络中快速传输文件,例如用于网络启动、配置文件分发等场景。
总的来说,Dnsmasq提供了一个集成的解决方案,将DNS解析和DHCP服务集中在一个软件中,方便管理和部署。它适用于小型网络环境,例如家庭网络、小型办公室网络和嵌入式系统等。
-
操作步骤
-
安装
dnsmasq
yum install -y dnsmasq
-
配置文件
#备份初始配置文件,防止误操作 cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak #进入编辑 vim /etc/dnsmasq.conf
#dnsmasq.conf 配置说明 #指定了一个用于DNS解析的文件路径。Dnsmasq将从该文件中读取上游DNS服务器的配置信息,以便进行DNS转发和解析。 #如果不想单独设置,可以使用/etc/resolv.conf resolv-file=/etc/resolv.dnsmasq.conf #告诉Dnsmasq按照resolv-file中DNS服务器的顺序来查询,而不是并发地查询多个DNS服务器。这可以确保DNS查询按照指定的顺序进行,遵循优先级设定。 strict-order #该选项指定了一个附加的主机文件路径,通常是/etc/hosts。Dnsmasq将读取这个文件,并将其中定义的主机名与对应的IP地址关联起来。这样,在DNS解析过程中,Dnsmasq会优先使用这个附加的主机文件中定义的主机名解析结果。 addn-hosts=/etc/hosts #该选项指定了Dnsmasq监听的网络地址。在这个示例中,Dnsmasq将监听本地回环地址127.0.0.1和192.168.10.1。这意味着Dnsmasq将仅接受来自这两个地址的DNS查询和DHCP请求。 listen-address=127.0.0.1,192.168.10.1
#/etc/resolv.dnsmasq.conf 配置说明 nameserver 8.8.8.8
小技巧
编辑
/etc/dnsmasq.conf
文件,全是注释,按下ESC
然后输入:%d
然后回车可以全部清空 -
我的配置模板
resolv-file=/etc/resolv.conf strict-order addn-hosts=/etc/hosts listen-address=127.0.0.1,你的公网IP
-
启动 & 开机自启
systemctl start dnsmasq systemctl enable dnsmasq systemctl status dnsmasq
-
相关截图
-
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。