温馨提示×

centos sftp如何保活连接

小樊
47
2026-09-15 02:28:51
栏目: 智能运维

在 CentOS 上使用 SFTP(基于 SSH) 时,连接断开通常是因为 SSH 空闲超时 导致的。可以通过客户端配置服务端配置来实现“保活(keepalive)”。


一、客户端保活(推荐,无需改服务器)

方法 1:修改 SSH 客户端配置(全局)

编辑:

vi /etc/ssh/ssh_config

添加或修改:

ServerAliveInterval 60
ServerAliveCountMax 3

含义:

  • 每 60 秒发送一次保活包
  • 连续 3 次无响应才断开

重启或重新连接即可生效。


方法 2:当前用户配置

vi ~/.ssh/config

内容:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

方法 3:命令行临时使用

sftp -o ServerAliveInterval=60 user@host

二、服务端保活(对所有客户端生效)

编辑服务器配置:

vi /etc/ssh/sshd_config

添加或修改:

ClientAliveInterval 60
ClientAliveCountMax 3

然后重启 SSH:

systemctl restart sshd

⚠️ 需要 root 权限


三、SFTP 专用场景补充

1. 使用 lftp / curl 等工具

有些 SFTP 客户端不支持 SSH keepalive,可改为:

  • lftp
set net:timeout 60
  • autossh(长期保活):
autossh -M 0 -o ServerAliveInterval=60 user@host

2. 防火墙 / NAT 导致断线

如果是经过 NAT 或防火墙:

  • 保活间隔建议 ≤ 30 秒
ServerAliveInterval 30

四、验证是否生效

ssh -v user@host

观察是否有:

debug1:Sending env LC_*

及保活包交互日志


总结(最常用方案)

客户端

ServerAliveInterval 60

服务端

ClientAliveInterval 60

如果你是用于 脚本 / 自动化 / 跳板机 / 容器,可以告诉我具体场景,我可以给更合适方案。

0