我需要每天通过公共互联网复制大型文件树,并有效地做到这一点。据我所知,如果我使用同步在接收部分,同步非常有效,因为在文件树比较部分,双方(发送方和接收方)都可以在本地扫描现有文件树。这样,我假设同步到 rsyncd,这很好,但发送将以纯文本形式进行,我需要加密,因为我使用公共互联网。
相反,如果我像这样运行同步:rsync -a /localtree user@host:/remotetree/
那么所有操作都由同一个(本地)rsync 完成,它使用 ssh 登录到远程系统,扫描其文件系统并执行同步。然后我会在所有阶段获得加密,但远程树扫描并不那么有效。
那么,看起来 rsyncd 是为了有效性而 rsync(通过 ssh)是为了安全性?我是否可以选择安全地使用 rsyncd 而不需要在主机之间设置(显式)VPN?
请提供建议,因为同步文件似乎被广泛使用,我认为只是错过了加密部分的一些东西。
答案1
您认为通过 ssh(远程 shell)进行 rsync 意味着您的本地 rsync 可以完成所有工作,这是不正确的。
当使用类似通过 ssh rsync 到远程系统的命令时rsync -a /localtree user@host:/remotetree/
,有两个rsync
实例在工作:本地实例(由您启动)和远程实例(由远程 shell 启动)。两个实例都通过远程 shell 的管道进行通信。
该过程描述这里。
这意味着,当通过rsync
ssh 连接到远程系统时,扫描远程文件由远程 rsync“服务器”(不要与 rsyncd 守护进程混淆)实例处理,因此它与本地扫描一样有效。