首页主机资讯SFTP传输大文件CentOS如何操作

SFTP传输大文件CentOS如何操作

时间2025-11-20 13:10:07发布访客分类主机资讯浏览555
导读:CentOS下使用SFTP传输大文件的实用操作指南 一 环境准备与连接 确认系统已安装并运行 OpenSSH,建议版本≥ 4.8p1:执行命令查看版本:ssh -V。 建议使用密钥登录提升稳定性与自动化能力(免交互、可脚本化)。 连接示例...

CentOS下使用SFTP传输大文件的实用操作指南

一 环境准备与连接

  • 确认系统已安装并运行 OpenSSH,建议版本≥ 4.8p1:执行命令查看版本:ssh -V
  • 建议使用密钥登录提升稳定性与自动化能力(免交互、可脚本化)。
  • 连接示例:sftp user@your_server_ip,进入交互式 SFTP 后使用 put/get 进行传输。
  • 为长时间传输,建议在screen/tmux会话中执行,避免网络抖动导致中断。

二 交互式SFTP常用命令与示例

  • 上传文件:put local_file /remote/path/;下载文件:get /remote/file /local/path/
  • 递归传输目录:put -r local_dir /remote/dirget -r /remote/dir ./local_dir
  • 在 SFTP 会话中,常用本地/远端操作前缀:本机用 l 开头(如 llslcd),远端用常规命令(如 lscd)。
  • 示例:将本地的 largefile.tar.gz 上传到远端 /backups/
    sftp>
         put largefile.tar.gz /backups/largefile.tar.gz
    
  • 示例:递归下载远端目录到本地当前目录
    sftp>
         get -r /backups/myfolder ./
    
  • 提示:SFTP 交互式会话中不支持 nohup/& 后台,需借助 screen/tmux 保持会话。

三 提升大文件传输稳定性与效率的实用技巧

  • 保持会话不中断:在screen/tmux中运行 SFTP,网络闪断后可重连继续操作。
  • 启用压缩:连接时加 -C 开启 SSH 压缩(对可压缩数据有效,能一定程度提升速度)。
  • 免密登录:配置 SSH 密钥,减少交互与潜在中断。
  • 限速传输:若需控制带宽占用,可用 scp -l < 速率_Kbit/s> 限速(单位为 Kbit/s,换算为 KB/s 需除以 8)。
  • 断点续传与进度监控:SFTP 本身不支持断点续传与内置进度条,可借助外部工具:
    • 使用 rsync(走 SSH,支持断点续传):rsync -avzP --partial local_file user@ip:/remote/file
    • 使用 pv 显示进度:pv local_file | sftp user@ip < < < $'put - /remote/file'
  • 超大文件策略:先分割再传,最后合并
    # 分割:每块 1G
    split -b 1G bigfile bigfile.part.
    # 传输所有分片
    sftp user@ip <
        <
         EOF
    put bigfile.part.*
    EOF
    # 远端合并
    cat bigfile.part.* >
         /remote/bigfile
    rm -f bigfile.part.*
    
  • 若对断点续传要求高且需更灵活控制,可考虑使用支持续传的客户端或改用 rsync

四 服务端安全与目录权限配置示例

  • 建议为 SFTP 创建专用用户与组,并限制其访问范围(Chroot)。
  • 编辑 /etc/ssh/sshd_config,启用 internal-sftp 并限制 SFTP 用户的家目录:
    # 注释原有 Subsystem 行,启用内置 SFTP
    #Subsystem sftp /usr/libexec/openssh/sftp-server
    Subsystem sftp internal-sftp
    
    Match Group sftp
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
  • 创建用户与目录权限(示例用户 user1):
    groupadd sftp
    useradd -g sftp -s /sbin/nologin user1
    passwd user1
    
    chown root:sftp /home/user1
    chmod 755 /home/user1
    mkdir -p /home/user1/upload
    chown -R user1:sftp /home/user1/upload
    chmod -R 755 /home/user1/upload
    
  • 重启 SSH 服务:systemctl restart sshdservice sshd restart
  • 连接测试:sftp user1@your_server_ip,在 upload 目录中进行上传/下载。

五 常见问题与排查

  • 连接被中断或速度慢:优先检查网络带宽与稳定性、服务器负载;必要时使用密钥登录、在screen/tmux中运行,并考虑压缩与限速策略。
  • 权限错误:Chroot 环境下,用户的可写目录必须位于其家目录内,且上层目录需由 root 拥有且权限为 755,否则会报权限拒绝。
  • 版本过低:部分新特性依赖 OpenSSH ≥ 4.8p1,建议升级后再进行大文件传输。
  • 需要断点续传/进度条:SFTP 交互式不支持,改用 rsync -P/–partial 或配合 pv 监控进度。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SFTP传输大文件CentOS如何操作
本文地址: https://pptw.com/jishu/751969.html
如何用ifconfig优化centos网络性能 centos ifconfig如何查看网络连接状态

游客 回复需填写必要信息