![Conntrack:删除 conntrack 条目是否会删除 tcp 连接?](https://linux22.com/image/566619/Conntrack%EF%BC%9A%E5%88%A0%E9%99%A4%20conntrack%20%E6%9D%A1%E7%9B%AE%E6%98%AF%E5%90%A6%E4%BC%9A%E5%88%A0%E9%99%A4%20tcp%20%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
我想知道 Conntrack -D 是否删除了 tcp 连接或者只是删除了连接跟踪条目?
我建立了到路由器的 ssh,然后使用 Conntrack -D 命令删除了该条目。我可以看到该条目已被删除,但我看到终端上的 ssh 会话仍然存在。
另外,我在使用 Conntrack -L 进行展示时再次看到了该条目,但这次使用了不同的连接 ID 但相同的端口。
连接是否由终端上的 shell / ssh 程序重新启动?或者这是 Conntrack 的预期行为。
我是新手,不确定这个问题是否应该属于 iptables 标签,如果是的话,请重定向我。
答案1
Conntrack 仅允许您查看和操作有关连接的状态数据。它不会操作作为该 ssh 连接一部分的 TCP 数据包。
如果您想要中断 ssh 会话,只需删除该连接的状态数据,就会开始跟踪新连接。就像最初将 ssh 会话检测为新连接一样,协议跟踪只会看到正在进行的 ssh 会话中的下一个数据包并开始跟踪该连接。
如果您想要断开连接,则需要删除允许该会话启动的 iptables 规则。然后,当通过 Conntrack 断开连接时,防火墙将拒绝属于 ssh 会话的下一个数据包(假设防火墙配置为丢弃不属于某个正在跟踪的连接的数据包),并且 ssh 会话将停止工作。