bash:iptables:找不到命令


14

如何解决iptables: command not foundDebian 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。


输出是echo $PATH什么?
Braiam 2014年

1
iptables应该在您中,PATH所以sudo您不见了。
Valentin Bajrami 2014年

Answers:


14

iptables命令几乎只能以root身份运行,而不能以另一个用户身份运行。因此,除root用户外,它不在默认命令搜索路径中。

要运行iptables,请使用以下任一命令以root身份运行它:

su 'iptables --some-option …'
sudo iptables --some-option …

可执行文件位于中/sbin,该文件位于root的默认命令搜索路径中。


7

这是因为iptables未在您的PATH变量中列出。我认为它应该与sudo命令一起使用。尝试:

sudo iptables -L

如果那也不起作用,那么您应该检查iptables二进制文件在哪里,然后将其添加到PATH变量中。

在大多数情况下,它应该在中/sbin/。不过,只需在Debian7中进行验证即可。如果在其中,/sbin/则可以打开.bashrc文件并在末尾提供:

PATH=/sbin/:$PATH

you should checkout where the iptables binary is 我应该键入什么命令来定位iptables二进制文件?
user70167

then you can open .bashrc file and.bashrc文件的位置在哪里?
user70167

1
你用须藤检查了吗?尝试dpkg -L iptables列出文件。
flemingovirus

.bashrc文件呢?它在哪里?
user70167 2014年

2
好吧,这些都是基础知识。好的,它在您的主目录中。尝试从终端打开。vim ~/.bashrc
flemingovirus

1

dpkg -L iptables将显示从软件包安装文件的位置iptables

dpkg -L iptables | grep iptables$

您可以检查iptables二进制文件的位置。对我来说,它在Ubuntu中/sbin/iptables

因此,运行/sbin/iptables -L 并检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.