帮助中心

在使用SSH连接远程服务器的时候,如果长时间不操作,再次进入 Terminal 时就会有卡死一段时间没有响应。等待一段时间以后,会发现以下错误提示:Write failed: Broken pipe这表示连接管道已经断开,所以只能重进行连接。解决方法有三:方法一:客户端配置在客户端的 ~/.ssh/ config文件(如不存在请自行创建)中添加下面内容:ServerAliveInterval 60

当前位置: 首页  >> 新闻中心  >> 帮助中心  >> 查看详情

Linux系统服务器SSH的 Write failed: Broken pipe错误解决方法

浏览量:1558 时间:2023-08-16 05:34:05

在使用SSH连接远程服务器的时候,如果长时间不操作,再次进入 Terminal 时就会有卡死一段时间没有响应。等待一段时间以后,会发现以下错误提示:

Write failed: Broken pipe

序列号 CPU RAM HDD 带宽 售价(美元) 免费试用
香港服务器1 E5-2620 32G 1T HDD 50M/无限流量 $196.00 立即申请
香港服务器2 E5-2650 32G 1T HDD 50M/无限流量 $256.00 立即申请
香港服务器3 E5-2680 32G 1T HDD 50M/无限流量 $316.00 立即申请
香港服务器4 E5-2690 32G 1T HDD 50M/无限流量 $336.00 立即申请
香港服务器5 E5-2697 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器6 E5-2620*2 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器7 E5-2650*2 32G 1T HDD 50M/无限流量 $436.00 立即申请
香港服务器8 E5-2680*2 32G 1T HDD 50M/无限流量 $476.00 立即申请
香港服务器9 E5-2690*2 32G 1T HDD 50M/无限流量 $556.00 立即申请
香港服务器10 E5-2697*2 32G 1T HDD 50M/无限流量 $596.00 立即申请
香港服务器11 E5-2680v4*2 32G 1T HDD 50M/无限流量 $696.00 立即申请
香港服务器12 E5-2698v4*2 32G 1T HDD 50M/无限流量 $796.00 立即申请

这表示连接管道已经断开,所以只能重进行连接。

u=1019140925,2610932082&fm=26&gp=0.jpg

解决方法有三:

方法一:客户端配置

在客户端的 ~/.ssh/ config文件(如不存在请自行创建)中添加下面内容:

ServerAliveInterval 60

方法二:服务器端配置

在服务器的 /etc/ssh/sshd_config 中添加如下的配置:

ClientAliveInterval 60

方法三:临时SSH命令配置

如果只是临时性的连接(即只作用于当前SSH),可以直接使用 ssh 命令参数进行配置。

$ ssh -o ServerAliveInterval=60 user@sshserver

原理

为了保证服务器的资源不被浪费,系统会对SSH的连接进行自动回收管理。回收的原则就是如果一个连接在规定的限制时间内没有数据传输就认定为超时,然后就会主动断开连接。基于这个原则,如果想要保持连接,只需要在超时前发送一个空数据包即可。方法一和方法三是客户端主动发消息,而方法二是服务器端主动发消息。这两方法各有利弊,简单说一下区别。

客户端在线状态相对自由,可以随时上线和下线。这样的话,如果下线了,那么就无法继续发送消息,这样即使设置了ServerAliveInterval=60,消息因掉线而无法发出。所以超时后,仍然会掉线。而服务器端如果设置了以后,如果客户端掉线了,会根据 ClientAliveCountMax 进行反复测试,如果超过次数,仍然也会掉线。但是相对于客户端,连接的稳定性更加可靠。不过需要注意的事,在客户端数量较少的情况下使用服务器端维持比较合适,否则当客户端数量巨大时,对服务器的资源比较浪费。

Linux系统服务器相关内容推荐:Linux系统服务器和Windows系统服务器哪个更好

24小时服务器机房客服
帮助中心
  • 24H在线
  • Tg纸飞机