use*_*891 2 linux bash routing routes
我正在使用一个使用de ip rule...命令添加和删除一些规则的bash脚本.但是我在移除它们时遇到了问题.例如ip rule show输出如下所示:
0: from all lookup local
32764: from all fwmark 0x3022 lookup 12322
32765: from 10.10.10.1 lookup 12322
32766: from all lookup main
32767: from all lookup default
Run Code Online (Sandbox Code Playgroud)
我拥有的所有信息都是表id(12322),我需要删除查找该表的所有规则.
我尝试了这些命令:ip rule del table 12322并且ip rule del lookup 12322,但是两个命令总是删除第一个规则,而不是第一个查找12322的规则,我的意思是第一个规则from all lookup local.如果我运行任何这些命令5次,我最终没有规则.
如何删除lookup 12322一个命令中的所有规则?
您可以使用"从0/0到0/0"删除,但这将只删除一个规则.要删除它们,请使用以下内容:
while ip rule delete from 0/0 to 0/0 table 12322 2>/dev/null; do true; done
Run Code Online (Sandbox Code Playgroud)
这将删除所有规则,直到没有更多.
ip rule del prio {rule #}
Run Code Online (Sandbox Code Playgroud)
简单的。有用。这是根据库兹涅佐夫原始 iproute2 指令的“官方”方法。
另请注意 iproute2 手册:
警告:使用这些命令对 RPDB 所做的更改不会立即生效。假设脚本完成一批更新后,它会使用 ip RoutelushCache 刷新路由缓存。
要删除所有规则,您可以使用以下命令。
ip route del
Run Code Online (Sandbox Code Playgroud)
如果您通过 SSH 连接到服务器,这样做会断开您的连接并将您锁定。
| 归档时间: |
|
| 查看次数: |
20829 次 |
| 最近记录: |