AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 446933
Accepted
Speeddymon
Speeddymon
Asked: 2012-11-09 15:44:11 +0800 CST2012-11-09 15:44:11 +0800 CST 2012-11-09 15:44:11 +0800 CST

rsync 独特的情况

  • 772

参考:
如何进行多跳 SCP 传输?
https://stackoverflow.com/questions/732039/rsyncing-files-between-two-remote-servers-get-errors-stating-rsync-command-not
http://ubuntuforums.org/showthread.php?t=748431

我有一种情况,我真的希望有一个解决方案,尽管在过去的几个小时里我还没有找到任何东西。

我有两台无法相互通信的服务器,我需要在它们之间传输数据。这是一种相当普遍的情况,可以通过一些 scp 技巧轻松克服。这是陷阱。

一台服务器通过 VPN 访问,vpnserver另一台服务器targetserver通过跳转主机访问jumphostserver。

我已ProxyCommand设置为允许我通过代理连接到jumphostserver,targetserver并且我正在使用 SSH Mux 东西 ( ControlMaster/ ControlPersist/ ControlPath) 允许所有打开的连接共享连接。

我的本地机器可以使用以下命令在两台服务器之间正确地进行 scp 操作:

scp -3 vpnserver:/path/to/file targetserver:/path/to/destination

我还可以直接从vpnserver我的本地机器和从我的本地机器 rsync 东西到targetserver(使用通过的 ssh 代理jumphostserver)

我需要做的是让我的机器按照允许的方式充当中介scp -3,但是使用rsync, 以便将权限、所有权和(更重要的)ACL 正确复制到targetserver.

我曾考虑尝试 NFS 导出vpnserver和targetserver(通过 重新导出jumphostserver)的文件系统,但我无法控制jumphostserver,只能控制vpnserver和targetserver。

rsync
  • 2 2 个回答
  • 1062 Views

2 个回答

  • Voted
  1. Best Answer
    Skaperen
    2012-11-09T17:42:40+08:002012-11-09T17:42:40+08:00

    如果在存在网络连接的情况下这两台主机中的一台可以登录另一台主机,或者在另一台主机上使用 authorized_keys 中识别的 SSH ID 密钥,或者可以使用密码,并且如果未禁用端口转发,并且如果通过你的本地机器运行这个流量是可以的,然后这几乎总是可以通过端口转发来完成。

    让我们称您的本地机器为主机 A,主机 B 拥有使用 SSH 登录主机 C 的凭据,前提是它可以访问主机 C。

    1. 登录主机 B,使用选项进行反向端口转发,侦听机器 B 上的端口 2222 并连接到本地主机上的端口 3333(这将发生在机器 A 上)。在 Linux 上,此选项为“ -R 2222:localhost:3333 ”。

    2. 使用正常的端口转发登录到主机 C,监听机器 A 上的端口 3333 并连接本地主机上的 tp 端口 22(这将发生在机器 C 上)。在 Linux 上,此选项为“ -L 3333:localhost:22 ”。

    3. 在主机 B 上启动到主机 C 的测试 SSH 会话,以查看是否一切设置正确。要执行的命令是“ ssh -p2222 usernameonhostc@localhost ”。如果一切设置正确,它将连接到 B 的 2222 端口,转发到 A 的 3333 端口,然后转发到 C 的 22 端口。如果你的密钥正确,你就可以登录了。否则你应该得到一个密码提示。输入密码以确保。

    如果可以正常连接,请关闭该测试连接,然后继续下面的#4 或#5。

    1. 要将文件从 B 发送到 C,请在 B 上执行此操作: rsync -e "ssh -p2222" -av /where/to/get/files/。usernameonhostc@localhost:/where/to/put/files

    2. 要将文件从 C 发送到 B,请在 B 上执行此操作:rsync -e " ssh -p2222" -av usernameonhostc@localhost:/where/to/get/files/。/哪里/到/放/文件

    如果你需要通过互联网在机器之间传输非常大量的数据,因为你的本地访问带宽有限,那么它会更复杂,需要知道网络在 B 和 C 上是如何被限制的,甚至可能是不可能的。

    用您在主机 C 上使用的用户名替换字符串“useronhostc”。保留“localhost”原样或仅将其更改为“127.0.0.1”。为显示的示例提供正确的路径。如果它只是单个文件,请删除源路径末尾的“ /. ”。

    请记住,您必须同时登录 B 和 C(从 A)。建议使用单独的 xterminal 窗口。这些 ssh 登录都将进行端口转发。但您也可以通过它们执行命令。您可以选择与示例所示的 2222 或 333 不同的端口号。端口 22 可能是必需的,除非主机 C 出于某种原因在不同的端口上侦听(我用我的服务器这样做......我没有告诉哪个端口)。如果您更改端口 2222 和/或 3333,您可能必须使用 1024 或以上的数字。从技术上讲,您甚至可以对两者使用相同的数字,因为侦听是在不同的机器上进行的。

    • 2
  2. ewwhite
    2012-11-09T16:46:05+08:002012-11-09T16:46:05+08:00

    如果两个系统都可以访问互联网,您可以从 ntop 安装 n2n 包以在系统之间创建主机到主机的 VPN 链接。

    • 0

相关问题

  • 强制 rsync 进入非交互模式

  • 比较(diff)完整目录结构的最佳方法?

  • 如何使用 rsync 保持完整路径?

  • Rsyncing到USB驱动器时不时地失败

  • 使用 rsync 维护名称更改的目录的副本

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve