linux ssh链接断断续续排查

🔴 VMware 虚拟网卡(VMXNET3)导致的 TCP 长连接异常

环境:Ubuntu + Jenkins + gitlab

表现:

复制代码
ping 正常
SSH 偶发断开
XShell 10053
Jenkins 页面显示异常/不完整

本质:

markdown 复制代码
VMXNET3 的 TSO/GSO/GRO
    ↓
Ubuntu 内核 TCP 分段/聚合异常
    ↓
长连接被 reset
    ↓
SSH / Jenkins websocket 断开

修复步骤(简化版)

1. 关闭 VMXNET3 offload(最关键)

执行:

vbnet 复制代码
ethtool -K ens160 tso off gso off gro off

验证:

复制代码
ethtool -k ens160

确认:

text 复制代码
tcp-segmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off

2. SSH 配置优化

编辑:

bash 复制代码
vim /etc/ssh/sshd_config

追加:

yaml 复制代码
UseDNS no
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
GSSAPIAuthentication no

重启:

复制代码
systemctl restart ssh

3. 关闭 GUI(服务器建议)

arduino 复制代码
systemctl stop lightdm

如果不需要桌面:

bash 复制代码
systemctl disable lightdm

4. 永久关闭 offload(防止重启失效)

创建:

bash 复制代码
vim /etc/systemd/system/disable-offload.service

内容:

ini 复制代码
[Unit]
Description=Disable VMXNET3 offload
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -K ens160 tso off gso off gro off

[Install]
WantedBy=multi-user.target

执行:

bash 复制代码
systemctl daemon-reload
systemctl enable disable-offload
systemctl start disable-offload

5. (可选,终极稳定方案)

VMware 虚拟机:

复制代码
VMXNET3 → E1000E

路径:

python 复制代码
VM Settings
 → Network Adapter
 → Adapter Type
 → E1000E

最终效果

一般会解决:

问题 结果
XShell 10053 ✅
SSH 偶发断开 ✅
Jenkins 页面不完整 ✅
websocket reset ✅
长连接 timeout ✅

这个问题的最终定性

不是:

❌ Jenkins_HOME ❌ auditd ❌ sshd崩溃 ❌ Linux资源不足

而是:

🔥 VMware VMXNET3 TCP offload 导致 SSH/Jenkins 长连接异常。

相关推荐
大鸡腿同学6 小时前
手心向上,手心向下
后端
CCblandy7 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
凤山老林8 小时前
Spring Boot 集成 Sa-Token 实现高可用权限认证:登录鉴权、动态路由权限与接口防重放实战
spring boot·后端·sa-token·bootstrap
Bazingga10 小时前
一次推理的完整旅程:ReAct推理深度解析
后端
姜鱼问生10 小时前
Nginx gzip 压缩:一个配置让页面加载快 3 倍
后端·算法·架构
颜酱10 小时前
一栋商业大厦,讲清 InnoDB 的表空间、段、区和页
后端·mysql
码事漫谈10 小时前
1956 亿行数据该怎么存:金仓时序数据库的三个实测
后端
Wx-bishekaifayuan10 小时前
springboot桂味美食分享系统40540-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
彭亚川Allen10 小时前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程
IT_陈寒10 小时前
别让Java字符串拼接偷偷吃掉你的内存
前端·人工智能·后端