SFTP传输大文件CentOS如何操作
导读: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/dir;get -r /remote/dir ./local_dir。 - 在 SFTP 会话中,常用本地/远端操作前缀:本机用
l开头(如lls、lcd),远端用常规命令(如ls、cd)。 - 示例:将本地的 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'
- 使用 rsync(走 SSH,支持断点续传):
- 超大文件策略:先分割再传,最后合并
# 分割:每块 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 sshd或service 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
