Linux iptables 删除预路由规则命令
您需要使用iptables 命令和 ip6tables 命令。这些命令用于设置、维护和检查 Linux 内核中的 IPv4 和 IPv6 数据包过滤规则表。让我们看看如何使用 iptables 命令删除 Linux 系统上的预路由规则。您必须是 root 用户才能运行这些命令。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 防火墙 |
先决条件 | iptables 命令 |
操作系统兼容性 | Alma • Alpine • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 4 分钟 |
步骤 1 – 列出预布线规则
语法如下:
$ sudo iptables -t nat -v -L PREROUTING -n --line-number
OR
$ sudo iptables -t nat -v -L -n --line-number
其中,
- -t nat:选择nat表。
- -v:详细输出。
- -L:列出所选链中的所有规则。换句话说,显示 nat 表中的所有规则。
- -L PREROUTING– 仅显示 PREROUTING 链中的规则。
- -n:数字输出。IP 地址和端口号将以数字格式打印。
- --line-number:列出规则时,在每个规则的开头添加行号,与该规则在链中的位置相对应。您需要使用行号来删除 nat 规则。
步骤 2 – Iptables 删除预路由 nat 规则
语法是:
$ sudo iptables -t nat -D PREROUTING {rule-number-here}
删除规则#1,即以下规则:
1 15547 809K DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.147.164.8:80
键入以下命令:
$ sudo iptables -t nat -D PREROUTING 1
或
$ sudo iptables -t nat --delete PREROUTING 1
验证规则已从 PREROUTING 链中删除,输入:
$ sudo iptables -t nat -v -L PREROUTING -n --line-number
Linux iptables 删除预路由命令
这是另一个 DMZ 规则:
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.147.164.8:443
要删除预路由命令,请运行:
$ sudo iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.147.164.8:443
确保保存更新的防火墙规则,可以修改 shell 脚本或按照此处所述运行 iptables-save 命令。
相关另外,请查看我们针对Alpine Linux Awall、CentOS 8、OpenSUSE、RHEL 8、Debian 12/11、Ubuntu Linux 版本16.04 LTS / 18.04 LTS / 20.04 LTS和22.04 LTS 的
所有完整防火墙教程。
从 iptables 中删除特定 PREROUTING 规则的替代语法
假设您执行以下 iptables PREROUTING 命令进行端口重定向:
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.147.164.8:443
要删除,请运行上述相同的命令,但将“ -A”替换为“ -D”:
$ sudo iptables -t nat -D PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.147.164.8:443
另一个示例,运行相同的命令,但将“ -I”替换为“ -D”。例如,假设您有以下规则将 SSH(TCP 22)从端口 2222 重定向到端口 22:
$ sudo iptables -t nat -I PREROUTING -p tcp --dport 2222 -j REDIRECT --to-ports 22
变为:
$ sudo iptables -t nat -D PREROUTING -p tcp --dport 2222 -j REDIRECT --to-ports 22
或
$ sudo iptables -t nat --delete PREROUTING -p tcp --dport 2222 -j REDIRECT --to-ports 22
iptables 删除预路由规则命令示例
相关:Linux Iptables 删除postrouting规则命令
结论
我们向您解释了如何在基于 Linux 的系统上列出和移除/删除 iptables 预路由链 nat 规则。-D或--delete选项从选定链中删除一个或多个规则。此命令有两个版本,规则可以指定为链中的数字或如上所述要匹配的规则。有关更多信息,请参阅此处的iptables 手册页和以下页面:
检查iptables 命令示例并使用 man 命令/help 命令阅读以下手册页:
$ man iptables