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分钟就掐连接的做法。微信为了保证通讯实时性,建立的长连接里,需要定期发送心跳包到微信服务器,移动一直无法释放这个长连接,导致了上面的新闻讨论。说到底,移动没有做好智能机时代的流量特征的准备。到目前为止,没有发现电信、联通说微信占用信令的新闻。