千家信息网

Dnsmasq常见用法有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关Dnsmasq常见用法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Dnsmasq为小型网络提供网络基础设施:DNS,DHCP,路
千家信息网最后更新 2026年11月02日Dnsmasq常见用法有哪些

这篇文章将为大家详细讲解有关Dnsmasq常见用法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Dnsmasq为小型网络提供网络基础设施:DNS,DHCP,路由器通告和网络引导。它被设计为轻量级且占用空间小,适用于资源受限的路由器和防火墙。它还被广泛用于智能手机和便携式热点的共享,并支持虚拟化框架中的虚拟网络。

测试配置

当你测试新的配置的时候,你应该从命令行运行 Dnsmasq,而不是使用守护进程。下面的例子演示了如何不用守护进程运行它,同时显示指令的输出并保留运行日志:

# dnsmasq --no-daemon --log-queriesdnsmasq: started, version 2.75 cachesize 150dnsmasq: compile time options: IPv6 GNU-getoptDBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrackipset auth DNSSEC loop-detect inotifydnsmasq: reading /etc/resolv.confdnsmasq: using nameserver 192.168.0.1#53dnsmasq: read /etc/hosts - 9 addresses

在这个小例子中你能看到许多有用的信息,包括版本、编译参数、系统名字服务文件,以及它的监听地址。可以使用 Ctrl+C 停止进程。在默认情况下,Dnsmasq 没有自己的日志文件,所以日志会被记录到 /var/log 目录下的多个地方。你可以使用经典的 grep 来找到 Dnsmasq 的日志文件。下面这条指令会递归式地搜索 /var/log,在每个匹配的文件名之后显示匹配的行号,并忽略 /var/log/dist-upgrade 里的内容:

# grep -ir --exclude-dir=dist-upgrade dnsmasq /var/log/

使用 grep –exclude-dir= 时有一个有趣的小陷阱需要注意:不要使用完整路径,而应该只写目录名称。

你可以使用如下的命令行参数来让 Dnsmasq 使用你指定的文件作为它专属的日志文件:

# dnsmasq --no-daemon --log-queries --log-facility=/var/log/dnsmasq.log

或者在你的 Dnsmasq 配置文件中加上 log-facility=/var/log/dnsmasq.log。

配置文件

Dnsmasq 的配置文件位于 /etc/dnsmasq.conf。你的 Linux 发行版也可能会使用 /etc/default/dnsmasq、/etc/dnsmasq.d/,或者 /etc/dnsmasq.d-available/(不,我们不能统一标准,因为这违反了 Linux 七嘴八舌秘密议会Linux Cat Herd Ruling Cabal的旨意)。你有很多自由来随意安置你的配置文件。

/etc/dnsmasq.conf 是德高望重的老大。Dnsmasq 在启动时会最先读取它。/etc/dnsmasq.conf 可以使用 conf-file= 选项来调用其他的配置文件,例如 conf-file=/etc/dnsmasqextrastuff.conf,或使用 conf-dir= 选项来调用目录下的所有文件,例如 conf-dir=/etc/dnsmasq.d。

每当你对配置文件进行了修改,你都必须重启 Dnsmasq。

你也可以根据扩展名来包含或忽略配置文件。星号表示包含,不加星号表示排除:

conf-dir=/etc/dnsmasq.d/, *.conf, *.fooconf-dir=/etc/dnsmasq.d, .old, .bak, .tmp

你可以用 –addn-hosts= 选项来把你的主机配置分布在多个文件中。

Dnsmasq 包含了一个语法检查器:

$ dnsmasq --testdnsmasq: syntax check OK.

实用配置

永远加入这几行:

domain-neededbogus-priv它们可以避免含有格式出错的域名或私有 IP 地址的数据包离开你的网络。让你的名字服务只使用 Dnsmasq,而不去使用 /etc/resolv.conf 或任何其他的名字服务文件:no-resolv使用其他的域名服务器。第一个例子是只对于某一个域名使用不同的域名服务器。第二个和第三个例子是 OpenDNS 公用服务器:server=/fooxample.com/192.168.0.1server=208.67.222.222server=208.67.220.220

你也可以将某些域名限制为只能本地解析,但不影响其他域名。这些被限制的域名只能从 /etc/hosts 或 DHCP 解析:

local=/mehxample.com/local=/fooxample.com/

限制 Dnsmasq 监听的网络接口:

interface=eth0interface=wlan1

Dnsmasq 在默认设置下会读取并使用 /etc/hosts。这是一个又快又好的配置大量域名的方法,并且 /etc/hosts 只需要和 Dnsmasq 在同一台电脑上。你还可以让这个过程再快一些,可以在 /etc/hosts 文件中只写主机名,然后用 Dnsmasq 来添加域名。/etc/hosts 看上去是这样的:

127.0.0.1 localhost192.168.0.1 host2192.168.0.2 host3192.168.0.3 host4

然后把下面这几行写入 dnsmasq.conf(当然,要换成你自己的域名):

expand-hostsdomain=mehxample.com

Dnsmasq 会自动把这些主机名扩展为完整的域名,比如 host2 会变为 host2.mehxample.com。

DNS 泛域名

一般来说,使用 DNS 泛域名不是一个好习惯,因为它们太容易被误用了。但它们有时会很有用,比如在你的局域网的严密保护之下的时候。一个例子是使用 DNS 泛域名会让 Kubernetes 集群变得容易管理许多,除非你喜欢给你成百上千的应用写 DNS 记录。假设你的 Kubernetes 域名是 mehxample.com,那么下面这行配置可以让 Dnsmasq 解析所有对 mehxample.com 的请求:

address=/mehxample.com/192.168.0.5这里使用的地址是你的集群的公网 IP 地址。这会响应对 mehxample.com 的所有主机名和子域名的请求,除非请求的目标地址已经在 DHCP 或者 /etc/hosts 中配置过。


关于"Dnsmasq常见用法有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 域名 配置 网络 服务 例子 地址 日志 主机 名字 服务器 目录 篇文章 进程 运行 限制 常见 实用 内容 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 伟宏互联网科技 上海睿民互联网科技有限公司 亿人帮互联网科技有限公司 山东特亿宝互联网科技有限公司 湖南永感互联网科技有限公司 江苏根荣互联网科技 科技和互联网公司 北京互联网科技有限公司 小马过河互联网科技 云电互联网科技 科技与互联网哪个更好 栖莱科技互联网股份有限公司 消费医药和互联网科技 深圳市罗太互联网科技有限公司 合肥互联网科技公司公章图片 张召忠谈中国互联网科技 互联网领先科技成果宣传视频 广东猫王互联网科技有限公司电话 恒生科技互联网指数十大成分股 互联网与科技发展 互联网金融科技创新 智慧科技互联网 西安互联网科技公司 苏州大垚互联网科技 居家互联网科技有限公司 荆州市昕露互联网络科技有限公司 民营互联网公司国防科技 美国互联网科技公司 武汉亿视互联网科技有限公司
0