SSH连接一直卡着超时可能由多种原因导致,以下是一些常见的解决方案:
- 修改服务器端的配置文件 :
- 编辑
/etc/ssh/sshd_config
文件,添加或修改以下配置:
ClientAliveInterval 60
ClientAliveCountMax 3
```
这会使得服务器每隔60秒向客户端发送一次请求,如果客户端连续3次没有响应,则自动断开连接<b class="card40_2411__sup_5321" data-sup="sup">3</b>。
2. **修改客户端的配置文件** :
- 如果你没有权限修改服务器端的配置文件,可以在客户端的 `~/.ssh/config` 文件中添加以下配置<b class="card40_2411__sup_5321" data-sup="sup">1</b>:
```plaintext
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
```
这会使得客户端每隔60秒向服务器发送一次请求,如果服务器连续3次没有响应,则自动断开连接。
3. **设置系统环境变量** :
- 编辑 `/etc/profile` 文件,在最后一行添加以下行:
```plaintext
export TMOUT=1800
```
然后运行 `source /etc/profile` 使配置生效<b class="card40_2411__sup_5321" data-sup="sup">2</b>。这会将系统的超时时间设置为1800秒(30分钟)。
4. **关闭DNS反查** :
- 编辑 `/etc/ssh/sshd_config` 文件,添加以下行<b class="card40_2411__sup_5321" data-sup="sup">1</b>:
```plaintext
UseDNS no
```
然后重启SSH服务以使配置生效<b class="card40_2411__sup_5321" data-sup="sup">1</b>。
5. **启用TCP Keepalive** <b class="card40_2411__sup_5321" data-sup="sup">3</b>:
- 编辑服务器端的 `/etc/ssh/sshd_config` 文件,添加以下行<b class="card40_2411__sup_5321" data-sup="sup">1</b>:
```plaintext
TCPKeepAlive yes
```
然后重启SSH服务以使配置生效<b class="card40_2411__sup_5321" data-sup="sup">1</b>。
6. **检查防火墙设置** :
- 确保防火墙没有阻止SSH连接<b class="card40_2411__sup_5321" data-sup="sup">2</b>。你可以尝试临时关闭防火墙来排除这个因素。
7. **检查网络连接** :
- 确保客户端和服务器之间的网络连接是稳定的,没有中间设备(如路由器、防火墙)导致连接中断。
通过以上方法,你应该能够解决SSH连接超时的问题<b class="card40_2411__sup_5321" data-sup="sup">5</b>。如果问题仍然存在,建议检查服务器和客户端的日志文件,以获取更多关于连接超时的详细信息。