之前用 Centos 服务器也没这个问题,最近切换到 Debian 9,SSH 连接总是隔一段时间就会断开重新连接,但也没影响工作,也就没在意。
但是,今天想安装 PHP,那玩意耗时比较久,然后,每次安装途中,因为我没有操作,连接就断开了,重连后进度丢失,只能再来一次,气的我够呛。
必须,把这个问题给彻底解决了,谷歌,启动~
解决思路
因为是过一段时间就断开,说明服务器肯定是认为客户端已经下线,所以主动断开了连接。
猜测其它服务器不会这样,就是因为没有这个机制。
那么,解决的话,只需要让服务器偶尔和客户端交流下,就可以解决掉这个问题。
解决方法
1.
打开 SSH 配置文件
vim sshd_config
2.
修改 ssh 配置
去掉注释,并修改这三行
TCPKeepAlive yes
ClientAliveInterval 20
ClientAliveCountMax 3
TCPKeepAlive
顾名思义,保持TCP为活跃状态ClientAliveInterval
指定服务端向客户端请求消息的时间间隔,单位是秒ClientAliveCountMax
指服务端发出请求后客户端无响应则自动断开的最大次数(这个值我看网上好多教程都没搞清楚,设置的非常大,完全没必要,这个值其实为重试次数,意味着连接失败会重新试几次,而如果正常连接,根本不用重试,而如果无法连接,一直重试,浪费资源,也没有意义)
3.
重启 sshd 服务
/etc/init.d/ssh restart
现在问题就被解决了。