Nftables
nftables 刪除鏈中的所有規則
mytable
我在錶鍊中有許多規則mychain
:> sudo nft -a list table mytable table ip mytable { # handle 8 chain mychain { # handle 1 type filter hook input priority filter; policy accept; tcp dport 5550 accept # handle 18 tcp dport 5551 accept # handle 19 tcp dport 5552 accept # handle 20 tcp dport 5553 accept # handle 21 tcp dport 5554 accept # handle 22 } }
根據nftables wiki,應該可以從指定的鏈中刪除所有規則。但是以下命令返回錯誤:
> sudo nft delete rule mytable mychain Error: syntax error, unexpected newline, expecting handle delete rule mytable mychain ^
mychain
在不迭代規則句柄的情況下刪除所有規則的正確命令是什麼?
nftables wiki 中仍然存在一些錯誤。實際的語法非常合乎邏輯:
- 刪除一切
nft flush ruleset
- 清空一個表(
ip
如果未指定,預設為家庭)。例如對於my table
nft flush table mytable
- 刪除一個表(這也先清空它)。例如對於
mytable
nft delete table mytable
- 清空鏈條(同上)。例如對於
mytable mychain
nft flush chain mytable mychain
- 刪除鏈(同上)。例如對於
mytable mychain
nft delete chain mytable mychain
- 刪除規則(這仍然只能通過句柄引用來完成)。例如對於
tcp dport 5550 accept # handle 18
nft delete rule mytable mychain handle 18
要記住的是該動作是做什麼的。如果你想在鏈級別做一個操作,那很正常,有
chain
關鍵字。如有疑問,
nft
手冊頁通常更準確,但當然必須提前知道資訊位於CHAINS部分而不是RULES部分:鏈條
{添加 | 創建}鏈
$$ family $$錶鍊$$ { type type hook hook [device device] priority priority ; [policy policy ;] } $$
{刪除 | 列表 | 沖洗}鏈 $$ family $$ 錶鍊 刪除鏈
$$ family $$表句柄句柄重命名鏈$$ family $$錶鍊新名稱 $$ … $$
flush刷新指定鏈的所有規則。