Loading... # JumpServer 连接 192.168.124.48 失败排障复盘 # 一、事件概述 ## 1. 事件背景 在同一网络环境中,本地与 192.168.124.210 宿主机均可直接 SSH 登录 192.168.124.48,但通过 JumpServer 页面连接同一资产失败,表现为连接超时。 ## 2. 影响范围 ### A. 影响对象 通过 JumpServer 访问 192.168.124.48 的运维会话。 ### B. 未受影响对象 直接从本地或 192.168.124.210 宿主机执行 SSH 到 192.168.124.48。 ### C. 业务影响 堡垒机路径不可用,导致统一审计入口受阻,但不影响目标主机自身 SSH 服务可用性。 ## 3. 严重程度 中等。属于单资产访问异常,但影响堡垒机标准运维路径。 # 二、现象与证据链 ## 1. 关键现象 ### A. 主机对比测试 - 192.168.124.210 宿主机到 192.168.124.48:22 可达。 - JumpServer 的 koko 容器到 192.168.124.48:22 超时。 - koko 容器到 192.168.124.196:22 正常。 ### B. 抓包结论 在 192.168.124.48 抓包可见两类来自 192.168.124.210 的 TCP SYN: - 一类可得到 SYN-ACK,并完成短连接握手。 - 另一类持续重传 SYN,无任何 SYN-ACK 返回。 说明问题并非简单的目标端口关闭,也非全网段 ACL 阻断,而是同源 IP 下不同连接特征被内核策略选择性丢弃。 ## 2. 拓扑与路径 ```mermaid graph LR U[运维用户] --> J[JumpServer Web] J --> K[koko 容器<br/>192.168.250.7] K --> N[宿主机 NAT<br/>源地址转为 192.168.124.210] N --> T[目标主机 192.168.124.48:22] H[宿主机 192.168.124.210 直接 SSH] --> T ```  # 三、根因分析 ## 1. 直接根因 192.168.124.48 开启了已废弃且高风险的内核参数: - net.ipv4.tcp_tw_recycle = 1 该参数在 NAT 场景下会根据时间戳特征对同源地址连接做严格回收与校验,容易误判并丢弃合法 SYN。 ## 2. 为什么只影响 JumpServer 路径 ### A. 共同点 两条路径在目标主机侧看到的源地址都可能是 192.168.124.210。 ### B. 差异点 JumpServer 通过容器与 NAT 转发,连接时间戳与会话模式和宿主机直连不同,触发 tcp_tw_recycle 的误杀条件,导致 48 不回 SYN-ACK。 ### C. 对照验证 关闭 tcp_tw_recycle 后,koko 到 192.168.124.48:22 立即恢复连通,且 SSH 握手可进入认证阶段。 # 四、修复动作 ## 1. 立即修复 在 192.168.124.48 执行: ```bash sysctl -w net.ipv4.tcp_tw_recycle=0 ``` ## 2. 持久化修复 新增文件 /etc/sysctl.d/99-disable-tcp-tw-recycle.conf: ```bash net.ipv4.tcp_tw_recycle = 0 ``` 加载配置: ```bash sysctl -p /etc/sysctl.d/99-disable-tcp-tw-recycle.conf ``` ## 3. 修复后验证 - docker exec jms_koko nc -vz -w 3 -n 192.168.124.48 22 返回 succeeded。 - docker exec jms_koko ssh 到 192.168.124.48 已能完成握手并进入认证阶段。 # 五、预防与标准化建议 ## 1. 内核参数基线 - 在所有仍运行老内核的主机上禁用 tcp_tw_recycle。 - 建议保留 tcp_tw_reuse 的审慎配置,避免误用高风险参数。 ## 2. 变更前检查清单 - 涉及 SSH 异常时,必须做三点对照:宿主机直连、容器路径、目标机抓包。 - 同时采集目标机 sysctl 网络参数,优先排查历史兼容性开关。 ## 3. 架构层建议 - 明确 JumpServer 的真实出网路径与源地址模型。 - 对关键资产建立堡垒机链路自动探测,提前发现单点异常。 # 六、结论 本次故障并非 JumpServer 平台整体不可达,也非 192.168.124.0/24 网段通断问题,而是目标主机 192.168.124.48 的遗留内核参数 tcp_tw_recycle 在 NAT 场景下触发误杀。参数关闭后,JumpServer 到该资产连接恢复正常。 *** ## 参考资料 1. [Linux tcp_tw_recycle 在 NAT 场景的已知问题说明](https://vincent.bernat.ch/en/blog/2014-tcp-time-wait-state-linux) 最后修改:2026 年 03 月 18 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏