你的 TUN 接口仍在列表中,隧道不转发流量,而显而易见的修复方式看起来就是删除该链路。小规模清理正是在这里变成故障。该接口可能按设计就是持久的,可能属于会重新创建它的服务,或者 隐藏在同名但含义不同的命名空间中。它的存在并不能证明它是孤立的。

删除有名字的接口很容易。真正的工作是弄清谁依赖它。

误区:接口之所以残留,是因为隧道断了

持久 TUN 设备独立于已连接的会话存在。这正是持久标志的意义:设备保留下来,以便下一次连接可以复用它。没有流量通过,也没有任何问题。

该接口也可能属于正处于两次重启之间的服务,或属于配置文件空闲的客户端。在断定它被遗弃之前,请检查所属进程和配置。进程列表和启动它的配置,比一个消失的隧道更有说服力。

记录名称时一并记录命名空间。另一个命名空间可能有同名接口,两者互不相干。需要检查另一个命名空间时,使用命名空间标志。

误区:删除链路就能清理干净

删除链路会移除其上附着的地址和路由。它不会移除引用过它的策略规则、防火墙规则、解析器设置或辅助脚本。这些可能残留下来,并指向一个已不存在的设备。

如果服务仍在配置中,它可能在下次启动或重连时重新创建该接口。那时你删除了一个正常工作的资源,却把原本的生命周期问题留在原处。要改配置,而不只是运行时状态。

以接口回来、规则重复收场的清理,比不清理更糟。

动它之前先找到所有者

先用 ip link show 和 TUN/TAP 检查工具获取该接口、它的地址和路由。检查可能拥有它的客户端、服务或网络管理器。确认设备是否持久,以及使用哪种模式。然后再判断是否还有人依赖它。

对于已确认未使用的持久接口,ip tuntap 记录了按模式移除的方法。要匹配实际的设备名称和模式,不要对主机上的每个隧道都执行大范围清理。

操作期间保持恢复访问和其他客户端路由不受影响。记录下你使用的命令,以便下次检查可以精确复现。

通过所有者将其移除,然后检查还剩什么

先停止或移除受支持的连接配置,以免服务重新创建你要删除的东西。然后移除设备。之后,在各自的所有者之下检查残留的地址、路由和解析器状态。

如果重连时问题再次出现,就修复生命周期配置,而不是重复手动删除。一份清理记录写明孤立者是谁、为何未被使用、以及应由哪个组件负责替换,能避免下一个人把合法的持久接口误认为故障。

相关文章