正確的刪除tc的filter過濾器

2021-06-03 18:06:51 字數 1094 閱讀 1635

不像class,新增後 想要刪除很簡單 直接把tc命令中的add換成del就可以了,如果class重複,就會像新增路由出錯時候一樣有提示。

但是filter不一樣,相同規則的filter可以不斷持續的新增,規則新增後,核心會用不同的控制代碼號(handle)來區分,

刪除乙個filter,不能簡單的把規則的add換成del,那會刪除所有的filter規則,因為你沒有提供最重要的控制代碼號(handle) 沒有提供就是0 是0就會刪除所有規則。

you must at least provide the following:

devparent (qdisc or class)

prio

kind (filter type)

handle

如果乙個filter已經和乙個class關聯了,那麼你如果刪除這個class就會得到這樣的提示:rtnetlink answers: device or resource busy

所以,刪除一條class規則前,要先把和這個class關聯的filter刪除掉。下面是我的乙個實現($id 代表class規則id號碼)

檢視源**

1handles=`tc filter list dev $ |grep"flowid 1:$"|awk''`

2

3forhandlein$handles

4do

5tc filter delete dev $ parent 1: protocol ip prio 1 handle $ u32

6done

之所以要用迴圈,因為filter可能有多條關聯乙個class

Servelet元件之一的filter過濾器

什麼是filter filter,過濾器,顧名思義,即是對資料等的過濾,預處理過程。為什麼要引入過濾器呢?在平常訪問 的時候,有時候發一些敏感的資訊,發出後顯示時 就會將敏感資訊用 等字元替代,這就是用過濾器對資訊進行了處理。這只是乙個簡單的例子,當然,過濾器那麼強大,它的功能也不可能侷限於此,它不...

正確刪除 linux的方法

如果你需要從乙個硬碟驅動器中刪除 linux 並且已經試圖用預設的 dos windows fdisk 來這麼做,你將會遇到 分割槽存在但又不存在 的問題。要刪除非 dos 分割槽的最好辦法是使用乙個理解分割槽而不單是 dos 的工具。首先,插入 red hat linux 光碟來引導系統。引導後,...

刪除storyboard的正確方法

刪除storyboard的正確方法 一般情況下,我們有時候不想用storyboard,但是直接刪除的話,xcode就會報錯。那我今天就來講一下,正確刪除storyboard的方法。第一,直接將工程中的storyboard直接刪除掉,這樣你覺得就ok了?你錯了,還是要有第二步的。第二,找到plist檔...