作者:佚名 时间:2025-01-02 09:19:59 阅读:(15)
在使用 Rsync 守护进程(rsyncd)时,可能会遇到以下错误或警告信息:name lookup failed for 192.168.1.164: Name or service not known这个问题通常出现在Rsync尝试对连接的客户端IP地址进行反向DNS查询(reverse DNS lookup)时。如果DNS配置不正确、网络延迟较高或者没有相应的主机名映射,可能导致解析失败,从而触发上述错误。
2025/01/02 09:49:10 [4380] sent 94548656 bytes received 4750 bytes total size 18519950286077 2025/01/02 18:04:27 [5516] name lookup failed for 192.168.1.164: Name or service not known 2025/01/02 18:04:27 [5516] connect from UNKNOWN (192.168.1.164) 2025/01/02 10:04:27 [5516] rsync on data/ from UNKNOWN (192.168.1.164) 2025/01/02 10:04:27 [5516] building file list 2025/01/02 10:06:05 [5516] sent 94548509 bytes received 4602 bytes total size 18519950286077
Rsyncd在收到客户端连接请求时,会尝试将客户端的IP地址解析为主机名。这种行为的主要原因包括:
(1)、日志需求:部分系统管理员希望日志记录中包含客户端的主机名,而不仅仅是IP地址。
(2)、访问控制:如果配置文件中的hosts allow或hosts deny使用了主机名而非IP地址,Rsync需要通过反向DNS查询来确认连接权限。
如果系统的DNS配置不完整、网络不稳定或者反向解析服务器不可用,这种查询可能失败,导致Rsyncd报告"name lookup failed for"错误。
(1)、方法 1:禁用反向 DNS 查询
可以通过配置文件显式禁用反向 DNS 查询,从根本上解决该问题。
打开Rsyncd的配置文件,通常位于 /etc/rsyncd.conf:
vim /etc/rsyncd.conf
在全局配置部分(文件顶部)添加以下行:
reverse lookup = no
保存并退出文件。然后重启 Rsync 服务以使配置生效:
systemctl restart rsync
(2)、方法 2:通过启动参数禁用反向解析
如果无法修改配置文件,可以在启动 Rsyncd 时添加参数禁用反向 DNS 查询。例如:
rsync --daemon --no-detach --address=0.0.0.0
检查 Rsync 的帮助文档确认你的版本是否支持类似参数。
(3)、方法 3:通过防火墙规则阻止 DNS 查询
如果不需要任何 DNS 查询功能,可以通过防火墙阻止 Rsyncd 的 DNS 请求:
sudo iptables -A OUTPUT -p udp --dport 53 -j DROP sudo iptables -A OUTPUT -p tcp --dport 53 -j DROP
这种方式适用于无需解析任何主机名的场景,但需要谨慎操作,避免影响其他服务。
"name lookup failed for"问题通常是由反向DNS查询失败引起的。通过禁用反向查询、手动添加静态映射或优化DNS配置,可以有效解决这一问题。如果你的场景对主机名解析没有强依赖,建议直接禁用反向解析,以提高Rsyncd的性能和稳定性。