2017-10-06 97 views
0

我有基於linux系統的路由器。我有相關的SDK來定製路由器的Linux系統。如何停止crontrack會話

當我禁用iptables規則的端口轉發時,正在運行的crontack會話不會關閉並保持建立狀態。

我想停止所有正在運行的crontack會話,當我禁用從iptable規則的端口轉發。我的意思是,只刪除與刪除的規則相關的crontack會話。因此,停止使用dest IP(lan IP)=所刪除規則的dest IP的所有crontack會話。

如何在內核空間中做到這一點?如何開發一個覆蓋所有crontack會話的核心模塊,並檢查目標IP並只刪除給定ipaddress的會話?有沒有一些鏈接?

否則是用戶空間方式(C函數或Linux命令)來停止特定的crontack會話嗎?

+0

Stack Overflow是用於編程和發展問題的站點。這個問題似乎是無關緊要的,因爲它不是關於編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。 – jww

回答

0

https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

nf_conntrack_tcp_loose - BOOLEAN
0 - disabled not 0 - enabled (default)
If it is set to zero, we disable picking up already established connections.

所以已經建立的連接被檢測到即時(不涉及SYN/SYN + ACK/ACK),並重新添加爲新的跟蹤連接條目。由於這是一個新的conntrack條目,所以將再次遍歷nat表並再次應用DNAT規則。即使有一種方法不能立即工作(如果除了DNAT規則之外沒有定義SNAT/MASQUERADE,http服務器的傳出數據包可能會在WAN上顯示爲192.168.3.17一會兒而被拒絕/被192.168.33.13忽略) ,一旦另一種方式再次嘗試(ACK重試從192.168.33.13 ...)這將匹配。

鍵入:

echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose 

並嘗試再次conntrack -D刪除跟蹤連接條目...

這樣應該可以防止創建新的跟蹤連接條目,減少了下載。

這個答案被複制從:https://superuser.com/questions/1258689/conntrack-delete-does-not-stop-runnig-copy-of-big-file