📅  最后修改于: 2023-12-03 15:36:43.503000             🧑  作者: Mango
当你在终端中使用 SSH 连接到远程服务器时,有时会遇到错误 "client_loop: send disconnect: Broken pipe"。该错误通常表示网络连接中断或 SSH 连接超时。
本文将介绍如何修复终端和 Linux 中的 SSH 错误,包括设置 KeepAlive 和 TCPKeepAlive,修改服务器的 SSH 配置等。
可以在客户端的 SSH 配置中添加以下选项来设置 KeepAlive 和 TCPKeepAlive:
# 每隔60秒发送1个空包来维持连接
Host *
ServerAliveInterval 60
# TCPKeepAlive 设置为yes
TCPKeepAlive yes
这将每隔 60 秒向服务器发送一个空包,以防止 SSH 连接超时。
可以通过修改服务器的 SSH 配置来解决此问题。在服务器上打开 sshd_config
文件并添加以下选项:
# 每隔60秒发送1个空包来维持连接
ClientAliveInterval 60
# 最多发送3个空包
ClientAliveCountMax 3
这将每隔 60 秒向客户端发送一个空包,并在最多发送 3 个空包后断开连接。
如果您正在使用终端连接到远程服务器,可以使用 tmux 或 screen 工具来保持终端连接。这些工具可帮助您在维护 SSH 连接的同时分离终端会话。
为了使用 tmux,请在终端中运行以下命令:
# 运行tmux会话
tmux new -s session_name
这将创建一个名为 "session_name" 的 tmux 会话。要分离该会话,请按下 Ctrl+b d
。
要重新连接到该会话,请输入以下命令:
# 连接到之前的tmux会话
tmux attach -t session_name
对于 screen,可以使用以下命令:
# 运行screen会话
screen -S session_name
同样,要从会话中分离,请按下 Ctrl+a d
。
要重新连接到该会话,请输入以下命令:
# 连接到之前的screen会话
screen -r session_name
在本文中,我们介绍了如何在终端和 Linux 中修复 SSH 错误 "client_loop: send disconnect: Broken pipe"。我们建议使用方法一和方法二中的任一方法来设置 KeepAlive 和 TCPKeepAlive,以避免 SSH 连接超时。如果您正在使用终端连接到远程服务器,请尝试使用 tmux 或 screen 工具来维护 SSH 连接。