Answers:
您的服务器可能会关闭闲置时间过长的连接。您可以更新客户端(ServerAliveInterval
)或服务器(ClientAliveInterval
)
ServerAliveInterval
Sets a timeout interval in seconds after which if no data has
been received from the server, ssh(1) will send a message through
the encrypted channel to request a response from the server. The
default is 0, indicating that these messages will not be sent to
the server. This option applies to protocol version 2 only.
ClientAliveInterval
Sets a timeout interval in seconds after which if no data has
been received from the client, sshd(8) will send a message
through the encrypted channel to request a response from the
client. The default is 0, indicating that these messages will
not be sent to the client. This option applies to protocol
version 2 only.
要更新服务器(并重新启动sshd
)
echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
或客户端:
echo "ServerAliveInterval 60" >> ~/.ssh/config
~/.ssh/config
我的Mac上没有该软件,我是否必须在该计算机上创建它?
~/.ssh
)。所以mkdir -p ~/.ssh; chmod 700 ~/.ssh; touch ~/.ssh/config
一种替代解决方案是使用mosh
-移动外壳。与ssh相反,它通过UDP连接并支持漫游。您可以在家中开始会议,暂停笔记本电脑,将它带到办公室/朋友/在您有互联网的任何地方,取消暂停笔记本电脑并继续工作,就好像什么都没发生一样。如果您的网络连接不畅,此功能特别有用:如果击键未到达服务器并不断尝试重新建立连接,它将显示即时反馈。
安装和设置非常简单:它已包含在所有当前的Linux(以及一些非Linux)发行版中,并且可以通过先前的ssh连接协调会话初始化和身份验证。因此,如果两端都安装了mosh软件包,那么如果您能够通过ssh user@server
mosh进行连接,则很可能仅通过调用就可以与mosh进行连接mosh user@server
。
连接失败的主要原因是您必须通过UDP端口(默认范围:60000-61000)访问服务器,才能使mosh正常工作。因此,如果服务器位于防火墙后面,那么您自己就无法运做(如果考虑到安全性),您通常会不走运。
如果要延长连接时间,请在客户端中添加:
echo 'ServerAliveInterval 30' | sudo tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | sudo tee -a ~/.ssh/config
ServerAliveCountMax
默认情况下,此设置为3。因此,一旦ServerAliveInterval
向您的服务器发送了3小包信息,它将自动注销。将其设置为1200意味着此过程将至少发生1200次。简而言之,您应该至少连接30 * 1200秒(10小时)。
这通常意味着您的网络(TCP)连接已重置。例如,您的互联网提供商重新连接了您或类似的对象。
我遇到了同样的问题,但是没有达到预期的效果。如果发现在同一网络上,另一台服务器正在尝试相同的IP地址,则您将面临相同的问题。为了解决这个问题,您需要检查是否还有其他使用相同IP地址的服务器。可以使用arp
命令来完成。
我正在使用Debian,因此这里是一些命令示例,用于确定其他服务器是否确实在使用相同的IP地址
apt-get install arp-scan
arp-scan -I eth0 -l | grep 192.168.1.42
192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)
您会注意到两组使用相同IP地址的mac地址。通过将一个设置为另一个IP地址来避免冲突。
“管道断开消息”的另一个原因是另一台计算机正尝试使用与主机相同的IP。
一种测试其他人是否正在使用该IP的简单方法:
要找出网络上有哪些机器,可以使用Unix&Linux问题标题:如何查找还有哪些其他机器连接到本地网络。