ssh保持连接,心跳包

ssh连接长时间没有数据走,很可能运营商发现此连接没有数据走,就掐掉连接,导致连接中断。移动最过分,联通次之,电信好像不掐。

于是需要心跳包这样的处理方式,目前有两种方式的心跳包:

1、客户端心跳

2、服务端心跳

客户端心跳需要客户端软件功能支持,不同软件不同

一劳永逸的方法是修改sshd的配置

 

vim /etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 6
保存后 重启sshd
systemctl restart sshd.service    #CentOS 7
即可
在笔者看来,运营商信令主要包含了两种资源,
  • 移动基站的空中最大虚拟连接
  • TCP/IP层的已建立的TCP连接

空中最大虚拟连接是靠基站性能决定的,可以约等于基站容量

TCP连接那就是看运营商IP地址储备是否够用

移动在IP地址这块是短板,用户多,当然移动也有义务提升基站数据容量

在线TCP连接是需要占用IP地址的,移动的做法是,多个设备共享一个外网IP,一个连接至少需要占用一个外网IP地址的端口用来做NAT。根据TCP/IP协议,一个IP地址最多65535个端口,去除1 ~ 1024端口号,也就60000多个端口。移动为了节约IP资源,设置了连接空置3 ~ 5分钟就掐连接的做法。微信为了保证通讯实时性,建立的长连接里,需要定期发送心跳包到微信服务器,移动一直无法释放这个长连接,导致了上面的新闻讨论。说到底,移动没有做好智能机时代的流量特征的准备。到目前为止,没有发现电信、联通说微信占用信令的新闻。

发表评论

电子邮件地址不会被公开。 必填项已用*标注