客户端连接linux经常间隔性断开链接

起因

在使用SecureCRT通过telnet或SSH访问linux时,总是出现过段时间操作就会断开连接提示重连的问题。起初以为是网络不稳定造成的,但我测试发现在服务器端一直可以ping通客户端IP,同样客户端也可以ping通服务器,所以网络应该是没问题的(linux装在虚拟机下,网络模式设置为桥接,路由器也没问题)。
试用了最新的64位SecureCRT(本机WIN7 64位,开始用的是32位SecureCRT),putty客户端仍然存在这个问题,所以软件不兼容的问题也排除了。

最后通过各种摸索,终于知道了问题的主要原因,因为连接是可以的,只是会超时断开,根据网络结构来看,问题就可能出现在一下这几个部分

  1. 服务器存在防火墙,会关闭超时空闲连接,或设置了关闭超时空闲连接。
  2. 客服端和服务器之间存在路由器,路由器也可能带有防火墙,会关闭超时空闲连接。
  3. 客服端存在防火墙,会关闭超时空闲连接。

解决思路

知道问题,我们就有解决方法了:

既然问题都是会断开超时的空闲连接,那么我们就可以让客户端与服务器之间的连接“不空闲”,

  可以从服务器方面入手:

  这里需要服务器权限去修改/etc/ssh/sshd_config配置文件 ClientAliveInterval 300(默认为0,这里如果选项前面有“#”,表示被注释掉需要打开,同时TCPKeepAlive 也需要设置为yes)这个参数300的是意思是每5分钟,服务器向客户端发一个消息,用于保持连接,当然数值要比你的三个防火墙超时时间的最小值小,否则还没等发送空闲包,连接就被断开了。
修改后使用service sshd reload 命令执行生效,这个修改适用于所有终端连接,但不支持telnet方式连接,SSH方式可以保持连接。

  也可以从客户端入手:

  如果没有服务器权限则可以使用改变客户端的方式来让让客户端与服务器之间的连接“不空闲”,思想是一样的即让客户端每隔多长时间向服务器发一个消息,用于保持连接,上面提到的两个客户端secureCRT和putty都可以设置,这里的时间也是需要比你的三个防火墙超时时间的最小值小。
secureCRT在选项 终端 反空闲 中设置每隔多少秒发送一个字符串,或者是NO-OP协议包。
putty:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为300。

除了去适用防火墙,当然也可以通过改变防火墙来解决问题

  直接禁用防火墙可以实现,但整个网络的安全性就成问题了,去配置三个防火墙的规则也是让人比较吐血的事,这里就不赘述了,有耐心的朋友可以自己试试。

总结

  最后还是比较推荐使用客户端去发送消息包,操作简单,不会修改服务器文件,仅对自己有效,网络安全也能保证,并且增加的消息包也不会造成什么网络负担。
以上网上的资料加个人的理解,在这里给大家分享下,如有表述不正确的地方希望指出,共同学习共同进步嘛,by kylin9578(成都51testing第17期学员)

引用自 http://bbs.51testing.com/thread-987133-1-1.html

时间: 2024-11-05 11:53:44

客户端连接linux经常间隔性断开链接的相关文章

windows系统如何通过Xshell 客户端连接 linux系统(主要介绍ubuntu系统)

一. 1.查看ubuntu系统的ip地址:ifconfig 在window系统运行窗口下:ping ubuntu系统的IP地址:例如:ping 192.168.163.129 出现下述命令就是ping通了,按CTRL+C结束 2.再来查看windows系统的ip地址:ipconfig win+R  输入cmd(或者点击运行) 在Linux系统运行窗口下:ping windows系统的IP地址:例如:ping 192.168.20.56 出现下述命令就是ping通了,按CTRL+C结束 现在,双方

windows客户端连接linux服务器上的postmaster

1.服务器上修改pg_hba.conf文件. 修改文件中 host    all         all         127.0.0.1/32          trust 为如下内容 host    all         all         0.0.0.0 0.0.0.0          trust 2.服务器上修改postgresql.conf文件 #listen_addresses = 'localhost'     # what IP address(es) to liste

客户端连接linux mongodb

推荐直接使用Robomongo用mongovue遇到了坑,如果你已经使用了mongovue果断换 下载地址:https://www.robomongo.org/download

Centos6.7+openvpn配置Linux客户端连接,基于证书访问(三)

Linux 做为客户端连接 openvpn 服务,同样需要安装 openvpn 的软件及相关软件. 和服务器端的配置一样,先做时间同步,并添加定时任务 /usr/sbin/ntpdate time.windows.com echo '#time sync' >> /var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1' >> /var/spool

存储学习之--StarWind虚拟存储配置和Linux客户端连接

存储学习之--StarWind虚拟存储配置和Linux客户端连接      在Windows 2008 Server上安装好StarWind后,就可以对它进行配置了 一.配置基本的StarWind 1.启动StarWind管理器 默认情况下,StarWind管理器放在任务栏的右下角 2.添加主机(如果是本机,输入127.0.0.1即可) 3.连接到主机 默认用户名为:root ,默认的密码为:starwind 4.接下来添加target 输入一个target名称 选择存储的介质类型,分别是硬盘,

centos 6.8 linux iscsi服务器配置和客户端连接iscsi

centos 6.8 linux  iscsi服务器配置和客户端连接iscsi 一.服务端配置 1.首先安装各种包 yum search scsi iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils lsscsi.x86_64 : List SCSI devi

linux openvpn 客户端连接配置

1.yum install openvpn 2.vi /etc/openvpn/a.openvpn client dev tun proto tcp remote 123.111.111.111 1194 resolv-retry infinite #nobind persist-key persist-tun ca /usr/local/openvpn/keys/ca.crt cert /usr/local/openvpn/keys/c4.crt key /usr/local/openvpn/

Redis c/c++, java 客户端连接

Redis 介绍 redis这个想必大家都了解,关于redis的安装参考这里,redis使用文档参见这里. Redis C客户端的使用方法 Redis的c客户端 Hiredis使用比较广泛,下面主要介绍下它. 1,Hiredis的安装,配置 Hiredis客户端 在redis解压后的deps/hiredis下有相应的文件.如果你的安装包没有相应的文件可以到这里下载. cd deps/hiredis (下载hiredis的话 自行解压进入 解压后的目录). make 最后 把相应的文件加入到 系统

delphi客户端连接IBM MQ

项目需要:his-lis之前交互以表/视图BS方式完成交互,现需要更换成用IBM MQ消息平台的方式完成交互. 修改后的交互: 部署测试环境: Windows2003+Windows xp+IBM MQ 7.0.5 具体实现步骤: 部署MQ客户端,delphi连接IBM MQ需要MQ客户端支持: 部署MQ服务端: delphi客户端编写: 窗体源码: object Form1: TForm1   Left = 744   Top = 189   BorderIcons = [biSystemMe