背景:因业务需求,需要在CentOS服务器启动时通过自动执行脚本配置iptables过滤规则
方案:
1、在写好的自启动脚本set-iptables.sh的首行 #!/bin/bash 下面添加如下两条注释:
#chkconfig: 2345 90 10
#description: set-iptables.sh is a script to set iptables
2、将脚本移动到/etc/rc.d/init.d目录下
sudo mv /opt/script/set-iptables.sh /etc/rc.d/init.d
2、增加脚本的可执行权限
sudo chmod 755 /etc/rc.d/init.d/set-iptables.sh
3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
sudo chkconfig --add set-iptables.sh
sudo chkconfig set-iptables.sh on
踩坑:开始通过在 /etc/rc.d/rc.local文件中添加执行脚本,但重启电脑后iptables一直没有生效,测试看脚本应该执行了,但不知道为啥没有生效。 怀疑是操作系统的iptables设置在自启动脚本后面执行的,把之前的设置覆盖掉了,只是猜测。