首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ssh终端机在不活动约2分钟后就会结冰。

ssh终端机在不活动约2分钟后就会结冰。
EN

Ask Ubuntu用户
提问于 2021-06-04 13:22:25
回答 2查看 7.3K关注 0票数 7

我在ubuntu 20上有一个远程服务器,在本地我使用的是ubuntu 18。这是一个开放的问题,因为我不确定发布哪些细节来诊断我的问题…

我可以在我的远程服务器ssh没有问题。但是,如果窗口闲置了2分钟,它就会结冰,我什么也做不了。我必须不断地打开新的连接和关闭旧的窗户。

这听起来耳熟吗?我如何诊断或纠正?

EN

回答 2

Ask Ubuntu用户

发布于 2021-06-04 18:47:31

您的情况可能需要使用“保持活力”功能,可以在服务器ssh守护进程中进行可选配置。默认情况下,它是禁用的。在20.04服务器上保存原始/etc/ssh/sshd_config文件的副本,然后编辑它,找到这些行并更改它们,如下所示:

改变这一点:

代码语言:javascript
复制
#TCPKeepAlive yes

对此:

代码语言:javascript
复制
TCPKeepAlive yes

并改变这一点:

代码语言:javascript
复制
#ClientAliveInterval 0

为此(您提到了~120秒作为您的问题点,因此执行100):

代码语言:javascript
复制
ClientAliveInterval 100

重新启动sshd服务或重新启动,以使更改生效。

您可以使用tcpdump进行测试,监视保持“活动数据包”。但是,您必须在20.04服务器上本地运行tcpdump,否则您将从您自己的SSH连接获得大量数据包。示例(每保持活动数据包10秒):

代码语言:javascript
复制
sudo tcpdump -n -tttt
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
2021-06-04 15:04:57.551414 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 1949276260:1949276320, ack 1484187791, win 501, length 60
2021-06-04 15:04:57.551947 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 1:37, ack 60, win 8208, length 36
2021-06-04 15:04:57.551986 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 37, win 501, length 0
2021-06-04 15:05:07.562203 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 60:120, ack 37, win 501, length 60
2021-06-04 15:05:07.562681 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 37:73, ack 120, win 8208, length 36
2021-06-04 15:05:07.562716 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 73, win 501, length 0
2021-06-04 15:05:17.572944 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 120:180, ack 73, win 501, length 60
2021-06-04 15:05:17.573550 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 73:109, ack 180, win 8208, length 36
2021-06-04 15:05:17.573581 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 109, win 501, length 0
2021-06-04 15:05:27.583815 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 180:240, ack 109, win 501, length 60
2021-06-04 15:05:27.584345 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 109:145, ack 240, win 8208, length 36
2021-06-04 15:05:27.584382 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 145, win 501, length 0
2021-06-04 15:05:37.594578 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 240:300, ack 145, win 501, length 60
2021-06-04 15:05:37.595213 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 145:181, ack 300, win 8207, length 36
2021-06-04 15:05:37.595260 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 181, win 501, length 0
2021-06-04 15:05:47.605476 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [P.], seq 300:360, ack 181, win 501, length 60
2021-06-04 15:05:47.606003 IP 192.168.111.122.53176 > 192.168.111.136.22: Flags [P.], seq 181:217, ack 360, win 8207, length 36
2021-06-04 15:05:47.606039 IP 192.168.111.136.22 > 192.168.111.122.53176: Flags [.], ack 217, win 501, length 0

您也可以在不配置“保持生命”的情况下使用具有不同间隔的ping进行测试,如果没有其他原因,只能确定确切的时间限制。示例:

代码语言:javascript
复制
doug@s19:~/freq-scalers$ ping -i 100 192.168.111.1
PING 192.168.111.1 (192.168.111.1) 56(84) bytes of data.
64 bytes from 192.168.111.1: icmp_seq=1 ttl=64 time=0.210 ms
64 bytes from 192.168.111.1: icmp_seq=2 ttl=64 time=0.269 ms
^C
--- 192.168.111.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 103912ms
rtt min/avg/max/mdev = 0.210/0.239/0.269/0.029 ms

改变间隔,找出故障点。

票数 3
EN

Ask Ubuntu用户

发布于 2021-06-04 13:53:27

这只是个想法。如果在您和您的服务器之间存在有状态防火墙,它可能会被错误配置,并使用一种缩短TCP超时的方法。

当防火墙没有检测到连接上的任何通信量并因此认为它已经完成时,就会发生TCP超时。当客户端尝试使用TCP连接时,防火墙将不允许它,因为它期待一个新的SYN数据包。

通常,TCP超时不会被配置为少于一个小时。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1343677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档