如何运行 iptables-multi? EL7 中 iptables 符号链接的目标。

如何运行 iptables-multi? EL7 中 iptables 符号链接的目标。

iptables如果我在 EL7 环境下查看命令:

bash-4.1# uname -rvos
Linux 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 GNU/Linux

符号链接最终位于 sbin 目录中的 iptables-multi-1.4.7 进程中。

bash-4.1# namei /sbin/iptables
f: /sbin/iptables
 d /
 d sbin
 l iptables -> /etc/alternatives/iptables.x86_64
   d /
   d etc
   d alternatives
   l iptables.x86_64 -> /sbin/iptables-1.4.7
     d /
     d sbin
     l iptables-1.4.7 -> iptables-multi
       l iptables-multi -> /etc/alternatives/sbin-iptables-multi.x86_64
         d /
         d etc
         d alternatives
         l sbin-iptables-multi.x86_64 -> /sbin/iptables-multi-1.4.7
           d /
           d sbin
           - iptables-multi-1.4.7

如果我使用iptables-multi-1.4.7与 相同的参数运行iptables,则会出现未知的子命令错误。

bash-4.1# iptables --list INPUT 1
KUBE-FIREWALL  all  --  anywhere             anywhere

bash-4.1# iptables-multi-1.4.7 --list INPUT 1
iptables multi-purpose version: unknown subcommand "--list"

即使它们是相同的二进制文件(彼此符号链接),相同的命令行参数也会生成不同的输出。正确的调用方式是什么iptables-multi-1.4.7

答案1

bash-4.1# iptables-multi-1.4.7 main --list INPUT 1
KUBE-FIREWALL  all  --  anywhere             anywhere

绊倒之后源代码 iptables-multi 的我看到它尝试解析 argv 中的第一个和第二个条目。作为子命令传递main回 iptables。

相关内容