论坛风格切换切换到宽版
  • 1075阅读
  • 7回复

[问题求助]有没有命令或脚本删除一个IP的所有iptables规则? [复制链接]

上一主题 下一主题
离线885885.
 
发帖
2145
C币
-193033
威望
415
贡献值
1
银元
0
铜钱
4939
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
有没有命令或脚本删除一个IP的所有iptab.les.规则?

还有,选项 -X 删除某个用户相关的链.   是如何用的.呢?[成人用品]

谢谢.

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
2168
C币
-60397
威望
407
贡献值
1
银元
-1
铜钱
4944
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
iptables -t 表名 -F 用户链
iptables -t 表名 -X 用户链

就可以删除一个用户自定义的链了。
for table in raw mangle nat netfilter;do

  iptables-save -t $table | grep IP | sed 's/-A/-D/' | while read rule;do iptables -t $table $rule;done

done
复制代码
就可以删除某个IP的所有规则了
解释:
iptables-save -t 表名 会输出表中的所有规则
grep IP 提取出具有某个IP的规则(此处的IP还可以换成别的正则表达式)
sed 's/-A/-D/'  iptables-save输出的是 -A 链名  ...  这样的格式,删除的时候,只要把-A换成-D,后面的照写就可以了
iptables -t 表名 -D 链名 规则 就可以删除指定的规则了(删除的时候需要与添加的时候规则相同)

离线ppkart.
发帖
2118
C币
-131893
威望
410
贡献值
1
银元
-1
铜钱
4693
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 springwind426 于 2007-12-10 10:39 发表
iptables -t 表名 -F 用户链
iptables -t 表名 -X 用户链

就可以删除一个用户自定义的链了。

for table in raw mangle nat netfilter;do
  iptables-save -t $table | grep IP | sed 's/-A/-D/' | whil ...



你好, springwind

可能有一个小bug。
iptables-save -t $table | grep IP | sed 's/-A/-D/'

grep IP应该改为grep -w IP
否则, 如果有如下IP
222.1.1.1
222.1.1.11
222.1.1.111
222.1.1.12
222.1.1.121
的话, 当删除222.1.1.1的规则时, 所以IP的规则都被删除了。

离线tomsina.
发帖
2065
C币
-140211
威望
356
贡献值
1
银元
-1
铜钱
4481
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
grep "IP" ==> grep "IP "

离线cylczzj.
发帖
2088
C币
-60539
威望
413
贡献值
1
银元
-4
铜钱
4850
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2007-12-22 02:01 发表
grep "IP" ==> grep "IP "


你还没睡,很强嘛

离线justinfull.
发帖
2077
C币
-60720
威望
374
贡献值
1
银元
-6
铜钱
4673
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2007-12-22 02:01 发表
grep "IP" ==> grep "IP "



你好, 版主。

grep "IP "也可以。
好奇的问一下。如果要执行上万次这种grep操作,哪种方式的效率高呢?
grep -w IP 还是  grep "IP "?


谢谢了。

发帖
2081
C币
-60611
威望
377
贡献值
1
银元
-3
铜钱
4767
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
个人认为是 "IP " 的方式效率高一些,但这点微乎其微的优势你不用考虑

发帖
2065
C币
-235577
威望
384
贡献值
1
银元
-1
铜钱
4528
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
grep IP  这个IP只是一个表达式而已

grep ' 192.168.0.1 '  这个会找到192.168.0.1这个IP
grep '192.168.0\.'  这个会找到192.168.0这个网段的所有IP
grep '192.168.0.[1357] ' 这个会找到192.168.0.1 192.168.0.3 192.168.0.5 192.168.0.7中的任意一个IP
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个