Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1471468
  • 博文数量: 246
  • 博客积分: 3353
  • 博客等级: 中校
  • 技术积分: 3295
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-09 17:56
个人简介

精通测试技术,linux,shell,性能测试

文章分类

全部博文(246)

文章存档

2024年(3)

2023年(7)

2022年(7)

2021年(4)

2020年(1)

2019年(2)

2017年(2)

2016年(3)

2015年(11)

2014年(20)

2013年(10)

2012年(176)

分类: 系统运维

2012-07-22 23:22:41

一台托管在IDC的FreeBSD服务器,发现连过去一段时间内没动作就会自动断线,老是这样很不方便,于是进入服务器,修改 /etc/ssh/sshd_config文件的参数如下:
ClientAliveInterval 30
ClientAliveCountMax 6
以上参数说明:SSH Server 每 30 秒就会自动发送一个信号给 Client,而等待 Client 回应,如果客户端没有回应,会记录下来直到记录数超过 ClientAliveCountMax(这里设置为6次) 的值时,才会断开连接。
最后重启一下sshd服务既可!

使用ssh连接远程服务器的时候,在网络质量不太好的情况下,如果长时间没有键盘输入,ssh连接有可能中断。正在执行的程序和vim等缓冲区数据都会丢失。
在windows下使用SecureCRT可以设置session的noop属性来保持连接。
在linux下要保持连接,可以使用-o的一个参数ServerAliveInterval来设置一个防止超时的时间。
代码看起来象这样

ssh -o ServerAliveInterval=60 x.x.x.x

如果要让所有的ssh连接自动加上此属性,可以修改 ~/.ssh/config 文件添加

Host *
Protocol 2
ServerAliveInterval 30

当然,只这只能解决网络延时大和不稳定的情况,如果网络出现故障,数据还是容易丢失。因此,远程操作最好还是在screen中执行为好。最近工作时经常要同时维护 3 台 Ubuntu 的主机,但当 SSH Client 窗口在几分钟没有键盘操作的时候,会话就会超时断线,特别对于 SFTP 管理时会更加烦躁 :(

找了一些关于 SSH Server 的资料,发现通过修改 sshd 的配置文件,能够让 SSH Server 发送“心跳”信号来维持持续连接,下面是设置的内容

打开服务器 /etc/ssh/sshd_config,我在最后增加一行

ClientAliveInterval 60

ClientAliveCountMax 1

这 样,SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应,(注意:是服务器发心跳信号,不是客户端,这个有别于一些 FTP Client 发送的 KeepAlives 信号哦~~~),如果客户端没有回应,会记录下来直到记录数超过 ClientAliveCountMax 的值时,才会断开连接。

阅读(5303) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~