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

如何从远程Linux云服务器向本地客户端传输文件?

从远程Linux云服务器传输文件到本地的可行方案

一、SCP命令(最通用的原生方案)

本地终端直接执行,无需额外安装工具(只要本地和远程服务器都开启SSH服务):

  • 单个文件传输:
    scp 远程用户名@远程服务器IP:/远程文件绝对路径 /本地保存路径
    
  • 整个目录递归传输:
    scp -r 远程用户名@远程服务器IP:/远程目录绝对路径 /本地保存路径
    

如果远程SSH端口不是默认的22,加-P参数指定端口:

scp -P 自定义端口号 远程用户名@远程服务器IP:/远程文件路径 /本地路径

二、Rsync(高效增量传输首选)

适合大文件、重复传输场景,支持断点续传,传输效率比SCP更高:

  • 单个文件传输:
    rsync -avz 远程用户名@远程服务器IP:/远程文件路径 /本地路径
    
  • 目录传输:
    rsync -avz 远程用户名@远程服务器IP:/远程目录路径/ /本地目标目录/
    

参数说明:

  • -a:归档模式,保留文件权限、时间戳等元数据
  • -v:显示详细传输日志
  • -z:传输时压缩数据,节省带宽
  • 非默认端口需指定SSH参数:
    rsync -avz -e 'ssh -p 自定义端口号' 远程用户名@远程服务器IP:/远程文件路径 /本地路径
    

三、SFTP命令行(交互式操作)

适合需要先浏览远程文件系统,再选择文件传输的场景:

  1. 连接远程服务器:
    sftp 远程用户名@远程服务器IP
    
    非默认端口:sftp -P 自定义端口号 远程用户名@远程服务器IP
  2. 下载单个文件到本地:
    get /远程文件绝对路径 /本地保存路径
    
  3. 下载整个目录(加-r参数):
    get -r /远程目录绝对路径 /本地保存路径
    
  4. 退出SFTP会话:exit

四、Python代码方案(绕开paramiko限制)

如果需要用代码实现,直接通过subprocess调用系统原生的scp/rsync命令,避免paramiko的功能局限:

import subprocess

# 单个文件传输示例
remote_path = "远程用户名@远程服务器IP:/远程文件路径"
local_path = "/本地保存路径"
ssh_port = 22

# 构建scp命令
transfer_cmd = ["scp", "-P", str(ssh_port), remote_path, local_path]
# 执行命令,check=True会在命令失败时抛出异常
subprocess.run(transfer_cmd, check=True)

# 目录传输只需加-r参数
dir_transfer_cmd = ["scp", "-r", "-P", str(ssh_port), "远程用户名@远程服务器IP:/远程目录路径", local_path]
subprocess.run(dir_transfer_cmd, check=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:15:34