UFW 不会删除规则

UFW 不会删除规则

我正在测试一些东西,并在防火墙中添加了一条规则以允许端口 9000。回想起来,我应该暂时禁用它。无论如何,我去删除规则,但它不让我删除,它说未找到规则。

$ sudo ufw delete 9000
ERROR: Could not find rule '9000'

但显然,该规则仍然有效:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80                         ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
9000                       ALLOW IN    Anywhere
80 (v6)                    ALLOW IN    Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)
9000 (v6)                  ALLOW IN    Anywhere (v6)

我读了 UFW 帮助,上面说可以删除端口号,但实际上却无法删除。如何从 UFW 中删除端口 9000 的规则?

答案1

正确的语法是:

sudo ufw delete allow 9000

如果你制定了以下规则:

sudo ufw allow 9000

那么规则就是allow 9000。现在如果你想删除规则:

sudo ufw delete rule

IE

sudo ufw delete allow 9000

答案2

第一步,您可以按编号列出所有当前规则:

$ sudo ufw status numbered

然后根据列出的编号,您可以按编号删除规则。规则的编号显示在最左边的列中。

$ sudo ufw delete 2

你可以参考一下链接:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04

答案3

我建议使用古夫(一种非常用户友好的方法来管理你的 Ubuntu 防火墙,由联邦快递

答案4

按照以下方法删除 ufw 中特定端口号的所有规则(本例中为端口 3000):

while true; do rule_number=$(ufw status numbered | awk '/(ALLOW|DENY) IN/ && $0 ~ /\<(3000)\>/{gsub(/[\[\]]/, ""); print $1; exit}'); if [ -z "$rule_number" ]; then break; else sudo yes | ufw delete $rule_number --force; fi; done

相关内容