CentOS 上 SFTP 掉线(连接中断) 常见原因可以分为 网络、服务端配置、客户端、系统资源 几类,下面按“最常见 → 较少见”给你梳理,并给出排查方法。
SFTP 基于 SSH,如果长时间无操作,会被自动断开。
相关参数(/etc/ssh/sshd_config):
ClientAliveInterval 0
ClientAliveCountMax 0
如果为 0,表示不发送保活包。
✅ 解决:
ClientAliveInterval 60
ClientAliveCountMax 3
改完重启:
systemctl restart sshd
✅ 排查:
ping sftp_server
mtr sftp_server
✅ 客户端可加保活:
sftp -o ServerAliveInterval=60 user@host
检查:
Subsystem sftp internal-sftp
或
Subsystem sftp /usr/libexec/openssh/sftp-server
路径错误会导致连接后立即断开。
SFTP 用户目录权限必须严格:
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
否则可能一登录就掉。
CentOS 默认开启 SELinux。
查看:
getenforce
临时关闭测试:
setenforce 0
若不再掉线,需要配置 SELinux 策略。
df -h
df -i
磁盘满会导致 SFTP 直接断开。
FileZilla / WinSCP / 脚本:
某些客户端多线程传大文件时:
检查:
dmesg | grep oom
journalctl -u sshd -f
或
tail -f /var/log/secure
掉线瞬间看日志,基本能定位。
如果你方便,可以贴一下:
/var/log/secure 里的报错我可以帮你精准定位。