温馨提示×

centos sftp断连怎么回事

小樊
41
2026-09-21 06:27:41
栏目: 智能运维

CentOS 上 SFTP 频繁断连,通常不是 SFTP 本身的问题,而是 SSH / 网络 / 配置 / 资源 引起的。下面按最常见原因 → 排查方法 → 解决办法给你梳理。


一、最常见原因(80% 都在这)

1️⃣ SSH 空闲超时(Idle Timeout)

服务器端或客户端设置了空闲断开。

现象

  • 不动一会儿就断
  • 传输大文件中途断

检查

grep -Rni "ClientAlive" /etc/ssh/sshd_config

解决

ClientAliveInterval 60
ClientAliveCountMax 3

重启 SSH:

systemctl restart sshd

2️⃣ 网络不稳定 / 防火墙 / NAT 断流

  • 云服务器安全组
  • 公司防火墙
  • NAT 超时(尤其家庭宽带)

现象

  • 传输中断
  • 断线无规律

排查

ping -c 100 server_ip
mtr server_ip

解决

  • 换网络
  • 调整 SSH keepalive
  • 云服务器检查安全组策略

3️⃣ SFTP 子进程异常退出

SFTP 使用 internal-sftp,配置错误会断。

检查

grep sftp /etc/ssh/sshd_config

正常应为:

Subsystem sftp internal-sftp

4️⃣ 用户 shell 或权限问题

  • 用户 shell 不是 /sbin/nologin/bin/bash
  • chroot 目录权限错误

检查

getent passwd sftpuser

chroot 常见错误

ChrootDirectory /data/sftp

要求:

  • 属主必须是 root
  • 权限 ≤ 755

5️⃣ 文件句柄 / 磁盘问题

  • 磁盘满了
  • inode 用尽
df -h
df -i

6️⃣ SELinux 拦截(CentOS 特有)

getenforce

如果是 Enforcing

setenforce 0

或配置正确 SELinux 策略。


二、客户端问题(也别忽略)

FileZilla / WinSCP

  • 勾选 “发送 keepalive”
  • 降低并发连接数
  • 关闭“被动模式异常检测”

三、快速定位步骤(推荐顺序)

  1. 看服务端日志
tail -f /var/log/secure

断线瞬间立刻看报错

  1. 测试基础 SSH 是否稳
ssh user@ip

SSH 断 = 不是 SFTP 问题

  1. 加 verbose
sftp -v user@ip

四、你可以直接告诉我这些信息,我能精准判断

  • CentOS 版本(7 / 8 / Stream)
  • 是否云服务器
  • 断线时的日志(/var/log/secure
  • 用的什么客户端
  • 是空闲断,还是传文件中断

我可以一步一步帮你定位到具体配置项

0