温馨提示×

ubuntu sftp为何频繁掉线

小樊
62
2026-10-02 08:57:47
栏目: 智能运维

Ubuntu 上 SFTP 频繁掉线,通常不是 SFTP 本身的问题,而是底层 SSH 连接不稳定或被服务器主动断开 导致的。下面按常见原因逐一说明,并给出对应解决办法。


一、最常见原因

1. SSH 空闲超时被断开(最常见)

服务器或客户端设置了空闲超时时间,长时间无操作会自动断开。

检查服务器配置:

sudo vi /etc/ssh/sshd_config

关注以下参数:

ClientAliveInterval 0
ClientAliveCountMax 3

建议修改为:

ClientAliveInterval 60
ClientAliveCountMax 3

修改后重启 SSH:

sudo systemctl restart ssh

客户端也可以加保活(推荐):

vi ~/.ssh/config

添加:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

2. 网络不稳定 / 丢包

  • WiFi 信号弱
  • 跨公网、跨国线路
  • 云服务器带宽限速

排查方法:

ping 服务器IP
mtr 服务器IP

如果丢包明显,SFTP 必然频繁断。


3. SFTP 子系统配置异常

检查 /etc/ssh/sshd_config 中:

Subsystem sftp /usr/lib/openssh/sftp-server

如果被改成 internal-sftp 但配置错误,也可能异常断开。


4. 使用了 chroot,但权限不对

如果你配置了:

ChrootDirectory /sftp

但目录权限不正确(必须 root 所有,且 755),会导致连接立刻断开。

正确示例:

sudo chown root:root /sftp
sudo chmod 755 /sftp

5. 并发 / 文件数量过大

  • 目录中文件几万以上
  • 客户端频繁列目录

会导致:

  • 超时
  • 内存不足
  • SFTP 进程被杀

6. 服务器资源不足

查看:

free -h
top
dmesg | tail

常见问题:

  • 内存不足 OOM
  • 进程数限制

7. 使用了代理 / 跳板机

  • 代理超时
  • 跳板机断开

二、快速自检清单

✅ 修改 ClientAliveInterval
✅ 客户端加 ServerAliveInterval
✅ 检查网络丢包
✅ 查看 /var/log/auth.log
✅ 避免 chroot 权限错误


三、看日志是最关键的

服务器上:

sudo tail -f /var/log/auth.log

客户端加 verbose:

sftp -v user@host

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • 是本地 / 云服务器
  • 是否用了 chroot
  • 客户端是 FileZilla / 命令行 / 脚本

我可以直接帮你定位具体原因。

0 踩