84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
用ssh登录阿里云,一会儿不操作就失去响应了,怎么办?
原因
这个事情比较繁琐,但不复杂:
第一:ssh使用tcp长连接进行通信,这个长连接是没有保活心跳的,所以当连接建立但是双方都没什么事的时候(你不敲命令,服务器也不向你发什么更新数据),中间是没有数据包的。
第二:从你的PC机,到你的公网出口,到互联网上,到阿里云防火墙,到你的阿里云主机,这一长过程可能会经过非常多个NAT设备和防火墙设备。以SNAT设备为例(常见的是家用路由器、公司路由器或防火墙,运营商CGN),这些设备会为你的这次TCP连接维持一个NAT会话(关于NAT的相关资料建议自学),如果这个会话在一定时间内有通信的话,就会刷新生存时间。如果这次会话双方确认断开连接,就会释放这个会话(这条TCP连接也不再通了)。然而这就有一个特殊情况,如果两个建立连接的双方都断网/死机了怎么办?这个会话应该也没用了,所以很多NAT设备会在这里设置一个最长生存时间,这个时间之内如果没有数据包通信,那就断开这个NAT会话。这就是你说的一段时间不操作就失去响应
第三:除了NAT设备,链路上很多防火墙设备都会有类似限制。很多公司的公司防火墙都有这种设置,无数据的NAT会话存活时间也都是自行设定的。
解决办法
一个最简单的解决办法,就是保持有数据就行了。
在闲着没事的时候打个top -c监控系统。
小提示
如果使用SecureCRT等工具,可以克隆当前会话,这个克隆的会话使用的是与被克隆会话相同的TCP连接,在克隆会话中top -c
原因
这个事情比较繁琐,但不复杂:
第一:ssh使用tcp长连接进行通信,这个长连接是没有保活心跳的,所以当连接建立但是双方都没什么事的时候(你不敲命令,服务器也不向你发什么更新数据),中间是没有数据包的。
第二:从你的PC机,到你的公网出口,到互联网上,到阿里云防火墙,到你的阿里云主机,这一长过程可能会经过非常多个NAT设备和防火墙设备。以SNAT设备为例(常见的是家用路由器、公司路由器或防火墙,运营商CGN),这些设备会为你的这次TCP连接维持一个NAT会话(关于NAT的相关资料建议自学),如果这个会话在一定时间内有通信的话,就会刷新生存时间。如果这次会话双方确认断开连接,就会释放这个会话(这条TCP连接也不再通了)。然而这就有一个特殊情况,如果两个建立连接的双方都断网/死机了怎么办?这个会话应该也没用了,所以很多NAT设备会在这里设置一个最长生存时间,这个时间之内如果没有数据包通信,那就断开这个NAT会话。这就是你说的一段时间不操作就失去响应
第三:除了NAT设备,链路上很多防火墙设备都会有类似限制。很多公司的公司防火墙都有这种设置,无数据的NAT会话存活时间也都是自行设定的。
解决办法
一个最简单的解决办法,就是保持有数据就行了。
在闲着没事的时候打个top -c监控系统。
小提示
如果使用SecureCRT等工具,可以克隆当前会话,这个克隆的会话使用的是与被克隆会话相同的TCP连接,在克隆会话中top -c