我有一个像这样的小脚本来配置 iptables:
#!/bin/bash
PRE_STR="iptables -t nat -A PREROUTING -p tcp -j DNAT"
FOR_STR="iptables -A FORWARD -p tcp -j ACCEPT"
#####################################
# instances
CM="10.0.1.137"
MASTER="10.0.1.149"
MYSQL="10.0.1.83"
REPORTING="10.0.1.85"
#####################################
# Clear Iptables
iptables -F
iptables -t nat -F
#####################################
# Forward to enable Internet on private nodes
iptables -t nat -A POSTROUTING -j MASQUERADE
#####################################
# Port forwarding
forward()
{
$PRE_STR --dport $1 --to $2:$3
$FOR_STR --dport $3 -d $2
}
#what from to ip to port
forward 3222 $CM 22
forward 7183 $CM 7183
forward 7180 $CM 7180
forward 3122 $MASTER 22
forward 8888 $MASTER 8888
forward 11000 $MASTER 11000
forward 2122 $MYSQL 22
forward 13306 $MYSQL 3306
iptables-save > /etc/firewall.conf
问题是,如何/etc/firwall.conf
在下次启动时加载当前的 iptables 设置?
在普通的 Debian 机器上,我会将一个脚本放入iptables-restore < /etc/firewall.conf
文件夹中/etc/network/if-up.d/iptables
。但这张图片中没有此功能。
那么加载它的正确原因是什么/etc/firewall.conf
?
AMI ID:ami-1de2d969
更新:
iptables-restore < /etc/firewall.conf
里面发射可以吗/etc/rc.local
?
来源:http://www.cyberciti.biz/faq/how-do-i-save-iptables-rules-or-settings/
答案1
Debian(及其衍生产品)使用该iptables-persistent
包执行此任务。
/etc/iptables/rules.4
在和/或中定义您的规则/etc/iptables/rules.6
并激活服务(使用update-rc.d
或chkconfig
您选择的工具)。
在 RHEL 及其衍生版本中,启动脚本/etc/init.d/iptables
为/etc/sysconfig/iptables
,因此您需要在那里定义规则,并确保服务iptables
已激活 ( chkconfig iptables on
) 并启动 ( service iptables start
)。
答案2
service iptables save
或者
/etc/init.d/iptables save