问题解决:ssh 服务器报错 packet_write_wait: Connection to xxx port 22: Broken pipe(2020.7.25 亲测有效)
·
一、问题描述
在 Mac 终端用 iterm2 连接服务器时,使用 ssh root@xxx.xx.xx.xxx 命令登录服务器,一段时间不用服务器,再进入终端会无响应,报错
packet_write_wait: Connection to xxx.xx.xx.xxx port 22: Broken pipe
二、解决方法
网上的很多方法写得不够清楚,下面我详细介绍下方法
在客户端打开 ~/.ssh/config 文件(下面的设置对所有的远程服务器都生效)
(1)设置固定断开时间
在文件的最后添加如下代码:
Host *
# 客户端每隔 30 秒给服务器发送一次请求信号(用于保持连接)
ServerAliveInterval 30
# 如果服务器有 10 次未响应请求,就会自动断开
ServerAliveCountMax 10
上面的代码可以让你 30*10=300 秒内不操作终端而不断开连接,如果超过 300 秒服务器就会自动断开连接(无响应,键盘无法输入),也就是会出现packet_write_wait: Connection to xxx port 22: Broken pipe
(2)保持长时间连接
如果想在你电脑开着的时候一直保持客户端和服务器的连接(除非使用 exit 命令断开),可以用如下代码:
Host *
# 客户端每隔 30 秒给服务器发送一次请求信号
ServerAliveInterval 30
当然如果你电脑待机了,它也会断开。
备注:上面是在客户端上配置的,其实也可以在特定服务器上配置,代码如下:
sudo vim /etc/ssh/sshd_config
ClientAliveInterval 60
这样可以保持一直连接
其他问题:ssh connection “client_loop: send disconnect: Broken pipe”
ssh connection “client_loop: send disconnect: Broken pipe”
在 sshd_config 文件中,添加如下内容:
Host *
TCPKeepAlive no
Reference
更多推荐
已为社区贡献8条内容
所有评论(0)