conntrack delete不会停止大文件

时间:2017-10-13 10:06:04

标签: c linux kernel nat netfilter

我有配置了nat端口转发的路由器。我通过nat启动了一个大文件的http副本。 http服务器托管在LAN PC上,其中包含要下载的大文件。我从WAN PC启动了文件下载。 我在文件副本运行时禁用了nat规则。文件副本保持不变。当我使用conntrack-tool禁用nat forward规则时,我想停止文件的副本。

enter image description here

我的conntrack列表包含以下conntrack会话

# conntrack -L | grep "33.13"
tcp      6 431988 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1

我尝试使用以下命令将其删除:

# conntrack -D --orig-src 192.168.33.13
tcp      6 431982 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1
conntrack v1.4.3 (conntrack-tools): 1 flow entries have been deleted.

删除了conntrack会话我可以在以下命令中看到。但是使用src ip地址创建了另一个conntrack会话是删除的conntrack的lan地址

# conntrack -L | grep "33.13"
tcp      6 431993 ESTABLISHED src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 [ASSURED] use=1
conntrack v1.4.3 (conntrack-tools): 57 flow entries have been shown.

我试图删除新的conntrack,但它仍保留

# conntrack -D --orig-src 192.168.3.17

# conntrack -L | grep "33.13"
conntrack v1.4.3 (conntrack-tools): 11 flow entries have been shown.
tcp      6 431981 ESTABLISHED src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 [ASSURED] use=1

我缺少什么?

1 个答案:

答案 0 :(得分:0)

首先,如果“ conntrack -D”命令成功执行,则可以在下面看到消息。

conntrack v1.4.4(conntrack-tools):已删除1个流条目。

所以我们猜想轨道删除工作失败了。

为什么不conntrack删除曲目?

也许您正在引用要从特定skb或曲目中删除的会话。

如果要获取详细信息,请尝试遵循Linux内核中的“ ctnetlink_del_conntrack”调用堆栈函数。