我正在测试一些东西,并在防火墙中添加了一条规则以允许端口 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
答案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