第一次使用 CentOS 7,配置防火墙的时候, iptables 服务不能用了,有的时候命令能成功,有的时候又不行,特别是那些写入的操作和服务相关的。在执行 service iptables start/stop
和 service iptables save
之类的服务命令时会出现 Failed to restart iptables.service: Unit iptables.service failed to load: No such file or directory.
的错误日志。原因是 CentOS 7 升级防火墙为 一个叫 firewalld
的库了。
下面就说一下如何在 Cent7 中像以前一样使用 iptables :
- 首先关闭并卸载 firewalld
systemctl stop firewalld
systemctl mask firewalld
- 安装iptables-services
yum install iptables-services
- 设置开机启动:
systemctl enable iptables
- 启动服务
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
- 保存设置:
service iptables save
开放某个端口 在/etc/sysconfig/iptables里添加 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
至于新的 fairwalld
的用法最主要有两条:
- 开放端口
firewall-cmd --permanent --add-port=80/tcp
- 查询端口是否开放
firewall-cmd --permanent --query-port=80/tcp