SCP/SFTP 传文件教程

本地文件怎么传到服务器?服务器文件怎么下载到本地?SCP 和 SFTP 就是干这个的。

一、SCP vs SFTP

  • SCP:命令行工具,一条命令传文件,适合传单个文件或写脚本
  • SFTP:交互式文件传输,功能更多,也可以图形化操作
  • 两者都走 SSH 协议(22 端口),安全加密,不用额外部署

二、SCP 命令行

本地 → 服务器(上传)

scp local-file.txt user@服务器IP:/remote/path/
scp -r local-dir/ user@服务器IP:/remote/path/    # -r 传目录

服务器 → 本地(下载)

scp user@服务器IP:/remote/file.txt /local/path/
scp -r user@服务器IP:/remote/dir/ /local/path/

用密钥

scp -i /path/to/key.pem local-file.txt ubuntu@服务器IP:/home/ubuntu/

指定端口(非 22)

scp -P 2222 local-file.txt user@服务器IP:/path/

注意大写的 -P,小写 -p 是保留文件属性,意思不同。

三、SFTP 命令行

sftp user@服务器IP
# 连上后:
put local-file.txt        # 上传
put -r local-dir/         # 上传目录
get remote-file.txt       # 下载
get -r remote-dir/        # 下载目录
ls                        # 看远端目录
lls                       # 看本地目录
cd /remote/path           # 切换远端目录
lcd /local/path           # 切换本地目录
exit                      # 退出

四、图形工具:FileZilla

  1. 官网下载 FileZilla Client(免费,Win/Mac/Linux 都有)
  2. 文件 → 站点管理器 → 新站点
  3. 协议选 SFTP,主机填服务器 IP,端口 22
  4. 登录类型选「密钥文件」,选你的 .pem 私钥(或选「正常」输密码)
  5. 连接。左边本地,右边服务器,拖拽传文件。

五、手机传文件

  • JuiceSSH:长按会话 → 更多 → 文件传输(SFTP 模式)
  • Termius:连接后点 SFTP 标签页,可视化传文件
  • 应急传小文件也可以用 cat 复制粘贴,但大文件还是走 SFTP

六、传大文件的技巧

  • 先压缩再传:tar -czvf web.tar.gz /var/www/html,传完再解压,比传一堆小文件快得多
  • 断点续传:用 rsync 代替 scp,支持续传:
    rsync -avzP -e ssh local-file.txt user@服务器IP:/path/
  • -P 显示进度,断了重跑自动续传

本文为杰哥的折腾笔记原创教程,转载请注明出处。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注