如何验证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
- 验证步骤:打开/etc/dnsmasq.conf下的调试日志:
日志查询
日志 dhcp
- 然后,重新启动并在挖掘主机名时观察日志:
在 debian 变体中,dnsmasq 默认在 /var/log/syslog 中记录。