debian 8 iptables-persistent

时间:2015-06-13 12:56:33

标签: linux service debian iptables

我有VPS Debian 8 jessie x64稳定版。安装后我试图配置iptables(就像在debian 7中)。

apt-get install iptables-persistent

成功执行,安装了一些数据包。但是当我尝试

service iptables-persistent start

我得到一个错误,说服务iptables-persistent unrecognized

HALP!

5 个答案:

答案 0 :(得分:51)

坚持IP表Debian / Ubuntu

要保留对iptables规则所做的任何更改,请执行以下操作。

安装iptables-persistent:

sudo apt-get install -y iptables-persistent

根据您的iptables规则进行任何更改,例如

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

然后运行

sudo dpkg-reconfigure -y iptables-persistent

现在重启后规则应该会保留。

额外信息

dpkg-reconfigure只会使iptables-persistent再次执行安装时的操作,即使用以下命令将当前iptables保存到文件中:

iptables-save >/etc/iptables/rules.v4
ip6tables-save >/etc/iptables/rules.v6

iptables-persistent包会导致操作系统在重新启动时运行如下所示的内容。

iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

希望这会有所帮助:)

答案 1 :(得分:10)

我也偶然发现了OP的问题(然后是他的问题);在查看package description for iptables-persistent时找到了解决方案。新接口似乎是netfilter-persistent,即使用例如:

# invoke-rc.d netfilter-persistent save

至少这对我有用,HTH ......

答案 2 :(得分:4)

2016年8月7日更新:这取决于发行版。输入以下注释内容是因为忽略了OP发行版是否具有netfilter-persistent包。我很抱歉。我的笔记本电脑发行版(Mint)不包含netfilter-persistent包,而我的服务器是发行版(Ubuntu 15+)。

原始答案: 正如Oliver所说,netfilter-persistent替换了Ubuntu中的iptables-persistent。适用于Ubuntu 15.04的内容如下:

安装它,然后确保它作为服务运行:     service --status-all | grep netfilter-persistent

如果没有作为服务运行,请始终使用以下命令启动一次:     invoke-rc.d netfilter-persistent start

然后,您必须将脚本放置在网络或其接口停止时将运行的位置。重要的脚本内容很简单:     invoke-rc.d netfilter-persistent save

我把脚本放在/etc/network/if-post-down.d目录中。不要忘记将其修改为可执行文件。如果断电是可能的,您可以为save命令创建一个cron条目。

答案 3 :(得分:1)

iptables-persistent在Debian Wiki上已被多次推荐。

安装:

apt install iptables-persistent 

iptables-persistent创建配置文件,并使用netfilter-persistent软件包立即重新加载或保存iptables规则

iptables配置文件位于文件夹中

/etc/iptables/rules.v4
/etc/iptables/rules.v6

主要管理工具是:

/usr/sbin/netfilter-persistent # you should be root or call sudo to use it

要更改iptable规则时,请编辑配置文件,然后重新加载iptables规则

netfilter-persistent reload

或者您可以使用iptables -I INPUT ...首先更改iptables规则,然后将其保存到配置文件中

netfilter-persistent save

如果要清除iptables规则,则可以使用flush命令

netfilter-persistent flush 

答案 4 :(得分:0)

最终问题出在firewalld服务上。这是某种新的防火墙守护进程。因为我认为它与netfilter(iptables) - 持久性冲突。所以我跑

chkconfig firewalld off

现在一切正常。免责声明:)我这不是最好的实践,它只是解决方法。没时间学习firewalld。