如何解决iptables: command not found
Debian 7.6 上出现的问题?
batman@gotham:~$ uname -a
Linux gotham 3.14-0.bpo.2-amd64 #1 SMP Debian 3.14.13-2~bpo70+1 (2014-07-31) x86_64 GNU/Linux
batman@gotham:~$ iptables -L
bash: iptables: command not found
batman@gotham:~$ sudo apt-get install iptables
[sudo] password for batman:
Reading package lists... Done
Building dependency tree
Reading state information... Done
iptables is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
batman@gotham:~$
我在 google 上进行了广泛的搜索,大多数答案都是针对 2005 年和 2009 年的 CentOS 和 Fedora。
答案1
该iptables
命令几乎只能以 root 身份运行,而不能以其他用户身份运行。因此它不在 root 以外的用户的默认命令搜索路径中。
要运行iptables
,请使用以下任一命令以 root 身份运行它:
su 'iptables --some-option …'
sudo iptables --some-option …
可执行文件位于/sbin
,它位于 root 的默认命令搜索路径中。
答案2
这是因为iptables
未在您的PATH
变量中列出。我认为它应该与sudo
命令一起使用。尝试:
sudo iptables -L
如果这也不起作用,那么您应该检查iptables
二进制文件的位置,然后将其添加到PATH
变量中。
在大多数情况下,它应该在/sbin/
.不过,只需在 Debian7 中验证即可。如果在,/sbin/
那么您可以打开.bashrc
文件并在最后提供:
PATH=/sbin/:$PATH
答案3
这可能不是您问题的答案。但是有些人遇到同样的问题并且没有安装iptable
您可以根据您选择的发行版尝试安装 iptables 软件包,如下所示。
分配 | 命令 |
---|---|
德班 | apt-get install iptables |
乌班图 | apt-get install iptables |
阿尔卑斯山 | apk add iptables |
架构Linux | pacman -S iptables |
卡利Linux | apt-get install iptables |
中央操作系统 | yum install iptables |
软呢帽 | dnf install iptables |
树莓派 | apt-get install iptables |
答案4
在某些发行版中,iptables
未安装,并且它也被认为是旧的。
在这些发行版中,您可能会使用该nft
命令。如果是,您可能想记录nftables
一下自己的情况:
https://wiki.debian.org/nftables
这可能是一个有用的教程:
https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables