You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加dummy接口后本地设备SSH连接中断及ping异常的原因排查

问题描述

为研究网络协议栈,在本地网络开展实验:

  • 两台设备IP分别为192.168.1.25和192.168.1.232,从第一台设备通过SSH连接到第二台设备(192.168.1.232归属第二台的wlo1接口)。
  • 在第二台设备的tmux会话中执行以下命令:
sudo ip link add vvv_0 type dummy
ifconfig vvv_0 192.168.1.250

(该IP未分配给其他设备)

执行第二条命令后,SSH连接中断,一段时间后会话自动终止并显示Broken pipe信息。

后续补充实验:

  • 在第一台设备执行:
ping 192.168.1.232
  • 同时在第二台设备执行:
sudo tcpdump icmp

观察到:第一台设备ping请求全部超时;第二台设备捕获到了所有ICMP请求数据包,但第一台未收到回应。

在第二台设备执行:

sudo ifconfig vvv_0 0.0.0.0

之后,两台设备可重新建立SSH连接。

请问此连接中断的原因是什么?

原因分析

核心原因是Linux系统的源地址选择策略导致响应数据包走了虚拟dummy接口,无法正常发出:

  • 当在第二台设备上创建dummy接口vvv_0并配置同网段IP192.168.1.250后,系统路由表中会新增一条指向该接口的同网段路由。此时,系统拥有两个处于同一网段的接口(wlo1和vvv_0)。
  • 当第二台设备收到来自192.168.1.25的SSH或ping请求时,生成响应数据包时,Linux的源地址选择规则会优先选择vvv_0的IP作为响应的源IP(同网段多接口场景下,系统可能选择新增的接口作为默认出口)。
  • dummy接口是纯虚拟的网络接口,没有对应的物理链路来转发数据包,因此响应数据包无法被传递到本地网络中。第一台设备收不到任何响应,SSH连接因长时间无交互心跳触发超时中断,最终显示Broken pipe;ping请求也会全部超时。
  • 当将vvv_0的IP设为0.0.0.0后,该接口不再参与同网段的路由计算和源地址选择,系统恢复使用wlo1接口的192.168.1.232作为响应源IP,数据包能正常通过物理链路发送,因此连接可以重新建立。

内容的提问来源于stack exchange,提问作者vglv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:02:42