【问题标题】:debian 8 iptables-persistentdebian 8 iptables-持久化
【发布时间】:2015-08-29 09:35:56
【问题描述】:

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

apt-get install iptables-persistent

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

service iptables-persistent start

我收到一个错误,说 thar service iptables-persistent unrecognized

停!

【问题讨论】:

  • iptables-persistent 现在是 netfilter-persistent

标签: linux service debian iptables


【解决方案1】:

持久保存 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

希望这会有所帮助:)

【讨论】:

  • 好奇的投票失败。是题外话还是什么?如果是这样,将它移动到某个主题的某个地方不是一个更好的主意吗?我以为我很有帮助:/
  • 我投票支持 offset ;) 我不是 iptables 专家,但这看起来很有帮助。
  • 选项 -y 不适用于 Debian 7.8 sudo dpkg-reconfigure -y iptables-persistent
  • @ChamindaBandara 好点。 -y 甚至不是 dpkg-reconfigure 的选项。此外,dpkg 甚至会询问低优先级的问题,而忽略您的默认优先级。如果您想让这个运行自动化,您可以使用-p critical 来减少它给您带来问题的可能性。不确定这是否是最好的解决方案,但这是我一直在使用的。
  • 这个在使用fail2ban的时候有用吗?它不会覆盖fail2ban的规则吗?
【解决方案2】:

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

# invoke-rc.d netfilter-persistent save

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

【讨论】:

    【解决方案3】:

    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 目录中。不要忘记将其 chmod 为可执行文件。如果可能发生断电,您可以为 save 命令创建一个 cron 条目。

    【讨论】:

    • 听起来他在说 netfilter 是基础,而 iptables-persistent 将从那里扩展。很不清楚。这就像克里姆林宫,Ubuntu 问题,比第一世界问题高出另一个层次。
    【解决方案4】:

    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 
    

    【讨论】:

    • 感谢您的“netfilter-persistent reload”。这很有帮助。我一直在重新启动计算机以加载已编辑的规则,因为我找不到此命令。
    【解决方案5】:

    问题出在 firewalld 服务中。这是某种与 netfilter(iptables)-persistent 冲突的新防火墙守护进程。

    chkconfig firewalld off
    

    现在一切正常。

    免责声明:这不是最佳做法,只是临时解决方法。

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多