1、service iptables save 无法执行
现象:(service iptables save 时显示 The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.)
解决:
1、systemctl stop firewalld 关闭防火墙
2、yum install iptables-services
3、systemctl enable iptables 启动iptables
4、systemctl start iptables 打开iptables
2、iptables 基础知识
a、配置文件所在地址:/etc/sysconfig/iptables
b、开启某个端口号给别人访问
iptables -A/I 访问/输出 -p 协议 --dport 端口号 -j 动作
iptables -I INPUT -p tcp --dport 2000 -j ACCEPT(允许外部机器使使用 tcp 协议访问端口2000)
iptables -I INPUT -p udp --dport 2000 -j ACCEPT(允许外部机器使使用 udp 协议访问端口2000)
iptables -I INPUT -p tcp --sport 2000 -j ACCEPT (允许外部服务器通过端口2000使用tcp访问我方服务器,参考https://blog.csdn.net/suirosu/article/details/39930555)
service iptables save(将其保存在配置文件中,重启服务器任然存在)
service iptables restart (重启防火墙)
c、禁止其他未允许的端口访问
iptables -A INPUT -j reject
d、允许本机向外访问
iptables -A OUTPUT -j ACCEPT (允许本机一切向外访问)
3、神坑
配置redis后,将6379端口号打开,设置防火墙,设置redis远程服务的各项配置,
但是一直无法远程连接redis服务器,一直是连接超时,无解。最后在大量博客中寻找答案。
最终找到原因,
在 /etc/sysconfig/iptables中有些centos的默认的防火墙规则
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。
这个是iptables的默认策略,你也可以删除这些,另外建立符合自己需求的策略。
写就是说,你配置在这两个规则之下的防火墙规则都是无效的。
详情见 https://blog.csdn.net/taiyang1987912/article/details/40189371