1. 使用最新版本的OpenSSH
旧版本OpenSSH可能存在性能bug或未优化的传输逻辑,升级到最新版本可获得性能改进和安全增强。在Debian中,通过以下命令更新OpenSSH:
sudo apt update && sudo apt upgrade openssh-server openssh-client
升级后重启SSH服务使更改生效:sudo systemctl restart sshd。
2. 优化SSH服务器配置(/etc/ssh/sshd_config)
调整以下关键参数可提升SFTP传输效率:
Subsystem sftp /usr/lib/openssh/sftp-server为Subsystem sftp internal-sftp,减少外部进程调用开销;Match Group sftp_users(需提前创建该用户组)添加ChrootDirectory %h(将用户限制在家目录)、ForceCommand internal-sftp(强制使用SFTP)、AllowTcpForwarding no(禁用TCP转发)、X11Forwarding no(禁用X11转发),既提升安全性又减少不必要的资源消耗;MaxSessions 10(每个用户的最大并发会话数,根据服务器性能调整)、MaxStartups 10:30:60(限制未认证连接数,避免过多连接占用资源)。sudo systemctl restart sshd。3. 启用SSH密钥认证
密码认证需反复加密解密,而密钥认证更高效且安全。步骤如下:
ssh-keygen -t rsa -b 4096(默认保存在~/.ssh/id_rsa);ssh-copy-id username@server_ip;PasswordAuthentication no。4. 启用SFTP压缩功能
传输前压缩文件可减少数据量,提升传输速度。有两种方式:
zip/tar打包文件后传输(如zip -r archive.zip /path/to/files,再通过SFTP上传);/etc/ssh/sshd_config中添加Compression yes(需重启SSH服务)。5. 使用多线程/并发连接
单线程传输易受网络波动影响,多线程可充分利用带宽。客户端工具推荐:
mirror --parallel=5命令(--parallel指定并发数)实现多线程同步。6. 优化网络配置
/etc/sysctl.conf,添加以下参数提升TCP性能:net.ipv4.tcp_tw_reuse = 1 # 允许重用TIME-WAIT状态的连接
fs.file-max = 65536 # 增加系统最大文件描述符数
net.core.rmem_max = 16777216 # 增加接收缓冲区大小
net.core.wmem_max = 16777216 # 增加发送缓冲区大小
应用配置:sudo sysctl -p。7. 优化磁盘I/O性能
磁盘I/O瓶颈会直接影响传输速度,可通过以下方式优化:
iostat -dx 1命令查看磁盘使用率(%util)、读写速度(tps、kB_read/s、kB_wrtn/s),若%util接近100%,说明磁盘繁忙;fsck检查磁盘错误。8. 优化文件传输策略
tar -czvf files.tar.gz /path/to/small_files),减少传输次数和连接开销;