You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

借助反向隧道简化三节点SCP传输:实现一步式跨设备文件复制

一步完成手机→私有云→Debian服务器的文件传输

根据你的场景,核心是利用SSH的跳板机功能实现流式传输,既不用手动登录私有云,也能避免在私有云存储临时文件,直接从手机把文件传到家用Debian服务器。下面给你两种可行方案,根据你手机的SSH版本选择:

方案一:使用ProxyJump(推荐,适合OpenSSH 7.3+)

如果你的手机装的是较新版本的OpenSSH(支持ProxyJump选项),这条命令最简洁高效:

scp -i /home/.ssh/id_rsa_1 -P 5022 -o "ProxyJump user_1@private_cloud.com:5022" \
  /storage/DCIM/Camera/20201128_212840.jpg \
  user_2@localhost:6022:/home/user_2/tmp/

关键参数解释:

  • -i /home/.ssh/id_rsa_1:指定连接私有云的私钥
  • -P 5022:私有云的SSH端口
  • -o "ProxyJump user_1@private_cloud.com:5022":让SSH先连接到私有云,把它作为中转跳板
  • user_2@localhost:6022:因为你的Debian通过反向隧道把SSH服务映射到了私有云的6022端口,所以从跳板机(私有云)访问localhost:6022就是连接你的家用Debian服务器

这种方式是流式传输,文件不会在私有云落地,直接从手机通过私有云中转到Debian,速度比两步操作快很多。

方案二:使用ProxyCommand(兼容旧版OpenSSH)

如果你的手机SSH版本较低,不支持ProxyJump,可以用ProxyCommand来实现同样的跳板效果:

scp -i /home/.ssh/id_rsa_1 -P 5022 \
  -o "ProxyCommand ssh -i /home/.ssh/id_rsa_1 -p 5022 user_1@private_cloud.com -W %h:%p" \
  /storage/DCIM/Camera/20201128_212840.jpg \
  user_2@localhost:6022:/home/user_2/tmp/

关键参数解释:

  • -W %h:%p:告诉私有云服务器,把所有流量转发到目标主机(这里是localhost)的指定端口(6022),相当于手动搭建了中转通道

备选方案:上传后自动转发(需临时存储)

如果上面两种方案因为环境限制无法使用,你也可以把两步操作合并成一条命令,自动完成上传+转发+清理:

scp -i /home/.ssh/id_rsa_1 -P 5022 /storage/DCIM/Camera/20201128_212840.jpg user_1@private_cloud.com:/tmp/ && \
ssh -i /home/.ssh/id_rsa_1 -p 5022 user_1@private_cloud.com \
  'scp -i /home/user_2/.ssh/id_rsa_2 -P 6022 /tmp/20201128_212840.jpg user_2@localhost:/home/user_2/tmp/ && rm /tmp/20201128_212840.jpg'

说明:

  • 用&&确保只有文件成功上传到私有云后,才会执行转发和删除操作
  • 最后的rm命令会自动清理私有云上的临时文件,避免占用空间

内容的提问来源于stack exchange,提问作者Karl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:36:21