1. 升级OpenSSH至最新版本
确保系统安装最新版本的OpenSSH服务器和客户端,新版本通常包含性能改进和安全增强。使用以下命令升级:
sudo apt update && sudo apt upgrade openssh-server openssh-client
2. 优化SSH配置文件(/etc/ssh/sshd_config)
Subsystem sftp /usr/lib/openssh/sftp-server替换为Subsystem sftp internal-sftp,减少外部进程调用开销。Match Group sftpusers块添加以下配置,将用户限制在Chroot环境中,降低安全风险:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
MaxSessions(如10)限制每个用户的最大并发会话数,MaxStartups(如10:30:60)控制未认证连接数,避免资源耗尽。3. 配置Chroot环境与权限
sftpusers组并将SFTP用户加入该组:sudo groupadd sftpusers
sudo usermod -aG sftpusers username
root所有且权限为755,上传子目录(如/home/username/upload)权限为755或775(需确保组可写):sudo chown root:root /home/username
sudo chmod 755 /home/username
sudo mkdir -p /home/username/upload
sudo chown username:sftpusers /home/username/upload
sudo chmod 775 /home/username/upload
4. 启用SFTP压缩功能
通过压缩减少传输数据量,提升速度。
~/.ssh/config中添加:Host your_server_ip
Compression yes
tar打包并压缩文件后传输,例如:tar czvf local_files.tar.gz /path/to/local/files
sftp username@remote_server_ip
put local_files.tar.gz /remote/path/
5. 优化磁盘I/O性能
iostat -dx 1命令查看磁盘利用率,确保磁盘性能未成为瓶颈(如%util接近100%需升级硬件)。6. 调整内核参数
编辑/etc/sysctl.conf,添加以下参数优化网络和文件描述符限制:
# 增加文件描述符限制
fs.file-max = 65536
# 允许端口重用,减少TIME_WAIT状态
net.ipv4.tcp_tw_reuse = 1
# 增大TCP窗口大小,提升网络吞吐量
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
应用配置:sudo sysctl -p。
7. 使用多线程/并发传输
通过客户端工具(如FileZilla、lftp)启用多线程传输,提升大文件或多文件传输效率。
mirror --parallel=4命令并行下载/上传目录。8. 采用密钥认证替代密码认证
密钥认证无需每次传输都进行密码验证,减少延迟并提高安全性。
ssh-keygen -t rsa -b 4096,将公钥(id_rsa.pub)复制到服务器用户~/.ssh/authorized_keys文件中。/etc/ssh/sshd_config中设置PasswordAuthentication no,重启SSH服务使生效。9. 监控系统资源与日志
htop(查看CPU、内存)、iotop(查看磁盘I/O)、nload(查看网络流量)工具监控资源使用情况,及时发现瓶颈。/var/log/auth.log文件,排查异常登录或认证失败记录,使用fail2ban防止暴力破解。10. 网络配置优化
sudo ufw allow proto tcp to any port 22
sudo ufw enable