验证 dnsmasq 配置

验证 dnsmasq 配置

如何验证dnsmasq的配置?

dnsmasq曾经能够在中提供有关其自身的详细信息/var/log/daemon.log,如中所述dnsmasq 测试

但是,当我重新启动 dnsmasq 服务时,没有任何内容记录到/var/log/daemon.log

% echo "    *** DEBUG `date --rfc-3339=seconds` DEBUG *** " >> /var/log/daemon.log

% service dnsmasq restart 
* Restarting DNS forwarder and DHCP server dnsmasq                      [ OK ] 

% tail /var/log/daemon.log
*** DEBUG 2013-11-27 23:04:08-05:00 DEBUG *** 

这是 Ubuntu 13.10 Saucy。

答案1

--无守护进程

dnsmasq如果直接运行它,将会将错误打印到终端。即dnsmasq --no-daemon,或使用所有日志记录选项:

$ dnsmasq --no-daemon --log-queries=extra --log-dhcp --log-debug -C /path/to/dnsmasq.conf

dnsmasq它将自行尝试启动 dnsmasq,如果发现任何问题,则会在配置中给出行号。

- 测试

dnsmasq --test将对配置文件进行基本语法检查。如果成功,它应该会打印类似

$ dnsmasq --test
dnsmasq: syntax check OK.

人为的失败看起来像

$ echo 'A-VERY-BAD-OPTION' > /tmp/tmp.conf
$ dnsmasq -C /tmp/tmp.conf --test

dnsmasq: bad option at line 1 of /tmp/tmp.conf

权限

如果您sudo在没有良好配置的情况下进行测试,dnsmasq 最终应该达到尝试开始监听端口 53 的阶段,但由于权限问题而失败。

如果您使用sudo(或者您port=1024在配置中设置或更高),那么 dnsmasq 应该会真正开始运行,但随后您可能需要kill手动完成该过程。如果您已经使用 运行--no-daemon,那么使用 很容易做到这一点Ctrl-C

答案2

据我所知,dnsmasq 通常会记录到 syslog 服务。默认情况下,它使用 DAEMON 设施。

FWIW:“它对我有用”(在 Fedora 18/19 中)。

如果您没有看到任何消息,我建议您验证您的 syslog 配置。或者,更实际的方法,尝试“grep -c dnsmasq /var/log/*”之类的操作。

另请参阅此处手册页中有关登录的详细说明: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

这里提到的一些其他日志记录可能性可能会影响其行为,例如,如果设施包含“/”字符。

其他子系统 (sys-) 日志记录是否正确?您可以使用“logger”命令让 syslog 记录消息吗?

呼呼!

罗伯。

答案3

DNSMASQ 是 Linux/Unix 上常见的 DNS/DHCP 服务器解决方案之一,以下是一些不错的链接:

help.ubuntu.com/community/Dnsmasq manpages.ubuntu.com/manpages/lucid/man8/dnsmasq.8.html wiki.debian.org/HowTo/dnsmasq

  1. 验证步骤:打开/etc/dnsmasq.conf下的调试日志:

日志查询
日志 dhcp

  1. 然后,重新启动并在挖掘主机名时观察日志:

在 debian 变体中,dnsmasq 默认在 /var/log/syslog 中记录。

相关内容