iptables
我正在阅读在 Android中直接写入系统的源代码/system/xbin/iptables
。我想在 Ubuntu 中执行相同操作,而不使用命令iptables
。
Ubuntu 16.04 在哪里iptables
?我关注了一些不适用于此版本 Ubuntu 的问题和答案。
find / -name iptables
返回/sbin/iptables
包含二进制和可能的人类!
该 iptables
命令将其配置写入文件在哪里?
答案1
iptables
将其信息存储在 RAM 中,这意味着它是非持久性的。如果您想随时保存/恢复它,您需要使用几个命令。
首先,您可以iptables
像平常一样按照自己想要的方式设置规则。然后,您可以使用以下方法冻结这些规则:
sudo iptables-save | sudo tee /etc/iptables.conf
然后,要加载规则,只需运行以下命令:
sudo iptables-restore < /etc/iptables.conf
您可以将其添加到您的/etc/rc.local
或类似程序中以使其在启动时自动运行,或者您可以让您的程序调用这个可执行文件(或者只是iptables
一遍又一遍地传递相同的规则)。
答案2
你实际上应该考虑使用 ufw,而不是 iptables。默认防火墙配置工具由 ubuntu 内部提供。
所有通过 iptables 配置的防火墙设置都可以通过 ufw 进行保存,比如位于 的配置文件/etc/default/ufw
。
NAT也可以被配置和存储:https://gist.github.com/kimus/9315140
答案3
iptables
除非你像这样保存规则,否则磁盘上不会存储任何内容:
service iptables save
重启后,您保存的规则将恢复原状。您可以通过执行iptables -L
列出规则来查看。
规则实际上存储在磁盘上(如果保存的话)/etc/sysconfig/iptables
。