我在 rsyslogd 使用 DNS 来 PTR 解析每个远程主机的名称时遇到了问题。
有没有办法使用“/etc/hosts”来完成相同的工作并禁用使用 DNS 的解析?
答案1
您可以通过确保hosts
nsswitch.conf 中的条目配置为来做到这一点hosts files dns
,这意味着它将首先查看 /etc/hosts,然后查看 DNS。
编辑:正如下面的@ThomasN 所提到的,这不仅仅影响 rsyslog,您可能需要在选择它之前考虑一下这种方法。
但这可能并不完全正确:
如果您确实希望解析发生,您可能需要考虑安装本地缓存解析器(可以是 dnsmasq、pdns-resolver、unbound 或任何数量的替代方案),并在相关域上配置非常长的 TTL(如果您选择的服务器可以实现)。
如果您不想解析这些域(或者至少不想从 rsyslog 解析),那么您可以通过两种方式禁用 DNS(使用命令行开关):
-Q
在 ACL 处理期间禁用 DNS 查找,这意味着所有网络 ACL 都需要基于fromhost-ip
。-x
禁用“远程消息”的 DNS(不完全清楚这意味着什么,除了我猜测远程主机的域名是不是任何时候都可以解决)。
大多数人似乎最终会同时使用这两个标志,但如上所述,这确实会影响你的配置。请参阅https://linux.die.net/man/8/rsyslogd更多