debian 8 iptables-persistent

问题描述 投票:19回答:5

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

apt-get install iptables-persistent

执行成功,安装了一些数据包。但是当我在努力的时候

service iptables-persistent start

我得到一个错误,说服务iptables-persistent无法识别

HALP!

linux service debian iptables
5个回答
52
投票

坚持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

希望这可以帮助 : )


10
投票

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

# invoke-rc.d netfilter-persistent save

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


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条目。


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 

0
投票

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

chkconfig firewalld off

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

© www.soinside.com 2019 - 2024. All rights reserved.