解决SSH连接华为云服务器ESC经常性断连问题
在使用vscode连接华为云服务器的时候,经常性的断连,一断连就要重启,非常麻烦
怎么解决呢?
首先输入
sysctl -a |grep tcp_tw
发现
net.ipv4.tcp_tw_reuse = 2
个参数允许内核将处于 TIME_WAIT 状态的 TCP 连接(通常是那些刚刚关闭但仍在等待一段时间以确保所有数据包都被处理的连接)重新用于新的出站连接。这样做可以减少等待时间,理论上可以提高某些情况下的连接建立速度。
解决方法:
sudo nano /etc/sysctl.conf
添加net.ipv4.tcp_tw_reuse = 0
在 nano 中,按 Ctrl+O 然后按 Enter 保存,再按 Ctrl+X 退出
sudo sysctl -p
重启,验证
sysctl -a | grep tcp_tw
成功
问题原因:
SSH 客户端通过 NAT(网络地址转换)设备连接到服务器时,多个不同的客户端可能共享同一个公网 IP 地址。如果服务器启用了 tcp_tw_reuse,并且一个客户端断开连接后,其连接进入 TIME_WAIT 状态,服务器可能会错误地将来自 NAT 后面另一个客户端(使用相同源 IP 和可能相同的源端口)的新连接请求视为对先前 TIME_WAIT 连接的重用。这会导致时间戳或序列号不匹配,从而中断新的连接。