版权声明:本文为CSDN博主「李爽11」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/ls1645/article/details/78750561  


CentOS 7 :Failed to start IPv4 firewall with iptables.

CentOS7 iptables:Failed to start IPv4 firewall_第1张图片

错误原因:因为centos7.0默认不是使用iptables方式管理,而是firewalld方式。CentOS6.0防火墙用iptables管理。

解决办法有两个:使用firewalld方式。或者关闭firewalld,然后安装iptables。


一、关闭firewalld,安装iptables过程:

停止并屏蔽firewalld:

systemctl stop firewalld

systemctl mask firewalld


安装iptables-services:

yum install iptables-services


设置开机启动:

systemctl enable iptables


停止/启动/重启 防火墙:

systemctl [stop|start|restart] iptables

#or

service iptables [stop|start|restart]


保存防火墙配置:

service iptables save

#or

/usr/libexec/iptables/iptables.init save


按照上述命令配置后的界面:

CentOS7 iptables:Failed to start IPv4 firewall_第2张图片


二、从iptables切换回firewalld

    1、先看firewalld的状态:inactive

CentOS7 iptables:Failed to start IPv4 firewall_第3张图片

    2、安装firewalld

Center

   3、切换到firewalld,切换过程与切换iptables一样

CentOS7 iptables:Failed to start IPv4 firewall_第4张图片





/************下面是iptables的一些命令*******************************/



查询防火墙状态:


[root@localhost ~]# service  iptables status


停止防火墙:


[root@localhost ~]# service  iptables stop 


启动防火墙:


[root@localhost ~]# service  iptables start 


重启防火墙:


[root@localhost ~]# service  iptables restart 


永久关闭防火墙:


[root@localhost ~]# chkconfig  iptables off 


永久关闭后启用:


[root@localhost ~]# chkconfig  iptables on


开启端口:


[root@localhost ~]# vim/etc/sysconfig/iptables




/**********下面是firewalld的一些命令*****************************/



#systemctl statusfirewalld  //查看状态,看电脑上是否已经安装firewalld


#yum installfirewalld  //安装firewalld防火墙


#systemctl startfirewalld.service   //开启防火墙


#systemctl stop firewalld.service  //关闭防火墙


#systemctl enable firewalld.service //设置开机自动启动


#systemctl disable firewalld.service  //设置关闭开机制动启动


#firewall-cmd--reload  //在不改变状态的条件下重新加载防火墙


启用某个服务


#firewall-cmd --zone=public --add-service=https  //临时


#firewall-cmd --permanent --zone=public --add-service=https  //永久


开启某个端口


#firewall-cmd--permanent --zone=public --add-port=8080-8081/tcp  //永久


#firewall-cmd  --zone=public --add-port=8080-8081/tcp   //临时


查看开启的端口和服务


#firewall-cmd--permanent --zone=public --list-services   //服务空格隔开 例如 dhcpv6-client https ss  


#firewall-cmd--permanent --zone=public --list-ports //端口空格隔开  例如 8080-8081/tcp 8388/tcp 80/tcp


#systemctl restartfirewalld.service  //修改配置后需要重启服务使其生效


#firewall-cmd--zone=public --query-port=8080/tcp //查看服务是否生效(例:添加的端口为8080)



/**********下面是systemctl的一些命令*******************************/


观察iptables和firewalld使用的两组命令,发现三个常用的命令:service、chkconfig、systemctl。那么它们分别是做什么的呢?(去网上搜索了一下给出了答案)


systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

任务

旧指令

新指令

使某服务自动启动

chkconfig --level 3 httpd on

systemctl enable httpd.service

使某服务不自动启动

chkconfig --level 3 httpd off

systemctl disable httpd.service

检查服务状态

service httpd status

systemctl   status httpd.service(服务详细信息) 

systemctl   is-active httpd.service(仅显示是否 Active)

显示所有已启动的服务

chkconfig --list

systemctl list-units --type=service

启动某服务

service httpd start

systemctl start httpd.service

停止某服务

service httpd stop

systemctl stop httpd.service

重启某服务

service httpd restart

systemctl restart httpd.service




参考文章: 


https://www.vkilo.com/rhel-7-iptables-service.html


http://blog.csdn.net/Joe68227597/article/details/75207859 


http://www.linuxidc.com/Linux/2012-06/63111.htm


http://man.linuxde.net/systemctl