在 MacOS 10.14.6 上,使用远程 IPv6 地址通过 rsync 将文件复制到远程计算机失败。似乎 IPv6 地址未正确转发到 ssh,但我使用括号和转义 IP 的所有尝试都失败了。
$ rsync -6 /local/path/to/file.tar.gz remoteusername@[2001:x:x:x:x:x:x:x]:/path/to/remote/dir/
ssh: Could not resolve hostname [2001: nodename nor servname provided, or not known
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/io.c(453) [sender=2.6.9]
表明 IPv6 的使用rsync -6 -e "ssh -6" [source] [target]
也失败了。
答案1
问题是 MacOS 附带的 rsync 版本显然不能正确处理 IPv6 地址。
$ /usr/bin/rsync --version
rsync version 2.6.9 protocol version 29
使用 MacProts rsync 解决了该问题,问题中所述的命令按预期工作
$ /opt/local/bin/rsync --version
rsync version 3.1.3 protocol version 31
答案2
对于我来说,这个解决方法在 rsync 2.6.9 版本上有效。
core@4TssX2-A:~ $ rsync -av -e 'ssh -l root' ./bbb.txt '[IPV6]:/tmp' 正在构建文件列表...完成
发送 76 字节 接收 20 字节 192.00 字节/秒 总大小为 0 加速为 0.00