有人可以解释一下rsync
远程主机上什么时候使用端口 22,什么时候使用端口 873?
它可以设置为始终端口 22,因为我听说如果它作为守护进程运行,它必须使用端口 873?有人可以简单地解释一下吗。
答案1
可以使用参数-e指定ssh端口,例如 rsync -rvz -e 'ssh -p $port' ./dir user@host:/path
答案2
对于上下文,rsync
文档说
rsync 有两种不同的方式联系远程系统:使用远程 shell 程序作为传输(例如 ssh 或 rsh)或直接通过 TCP 联系 rsync 守护进程。只要源路径或目标路径在主机规范后包含单个冒号 (:) 分隔符,就会使用远程 shell 传输。当源或目标路径在主机规范后包含双冒号 (::) 分隔符时,或者指定 rsync:// URL 时,会直接联系 rsync 守护进程。
22端口是SSH端口;当你告诉rsync
连接时使用它通过SSH,带有一个冒号(上面的“远程 shell”情况)。 873端口是rsync
守护进程端口;当rsync
与双冒号或 URL 一起使用时使用它rsync://
。
大多数时候你会使用 SSH;使用守护进程需要特定的设置。如果您只想使用端口 22,您所需要做的就是始终在远程主机描述符中指定一个冒号。