尝试使用 rsyncd 时,rsync 名称解析暂时失败

尝试使用 rsyncd 时,rsync 名称解析暂时失败

我尝试使用rsyncd将项目从客户端传输到服务器(推送操作)。客户端和服务器上都安装并运行了rsync3.1.2),服务器正在运行rsyncdrsyncd.conf如下所示,

pid file = /run/rsyncd.pid
strict mode = false

log file = /var/log/rsync.log

[dir1]
comment = test folder dir1
path = /opt/dir1/
uid = user_name
gid = group_name
read_only = false

当我尝试以下命令时,

rsync -aurv /path/to/dir1/ user@host_name::dir1

我收到以下错误,

rsync: getaddrinfo: host_name 873: Temporary failure in name resolution
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]

客户端和目标服务器通过堡垒服务器连接。如果我尝试一下,就不会出现问题,

rsync -aurv /path/to/dir1/ user@host_name:/path/to/dir1

我想知道如何修复这些错误。

干杯

答案1

您的失败是由于 DNS 查找host_name失败,错误信息如下:

getaddrinfo: ... failure in name resolution

为了修复这个问题,你可以更新你的命令来使用 IP 地址,方法如下:

rsync -aurv /path/to/dir1/ [email protected]::dir1

或对于 IPv6:

rsync -aurv /path/to/dir1/ user@[fe80::1]::dir1

如果失败,您可以添加一个条目/etc/hosts以允许名称解析 - 或者以其他方式修复您的 DNS 问题。

答案2

如果您使用 ssh 进行 rsync 传输,则不会使用 rsyncd 终止远程连接(这是对 TCP 873 的引用)。另一方面,如果您只是使用单独的 ssh 隧道将 TCP 873 转发到内部的 rsyncd 服务器,那么您的 rsync 客户端实际上将连接到本地主机,并且 ssh 将进行转发。

双冒号语法指定本机 rsync 协议(或 rsync://)。如果没有该协议,它将使用 rsh/ssh 传输方法。

相关内容