CentOS 7 :Failed to start IPv4 firewall with iptables.

左手的ㄟ右手 2022-06-04 08:09 270阅读 0赞
  1. iptables开启防火墙报错: Failed to start IPv4 firewall with iptables.

Center

  1. 错误原因:因为centos7.0默认不是使用iptables方式管理,而是firewalld方式。CentOS6.0防火墙用iptables管理。
  2. 解决办法有两个:使用firewalld方式。或者关闭firewalld,然后安装iptables

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

停止并屏蔽firewalld:

  1. systemctl stop firewalld
  2. systemctl mask firewalld

安装iptables-services:

  1. yum install iptables-services

设置开机启动:

  1. systemctl enable iptables

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

  1. systemctl [stop|start|restart] iptables
  2. #or
  3. service iptables [stop|start|restart]

保存防火墙配置:

  1. service iptables save
  2. #or
  3. /usr/libexec/iptables/iptables.init save
  1. 按照上述命令配置后的界面:

Center 1

二、从iptables切换回firewalld

  1. 1、先看firewalld的状态:inactive
  2. ![Center 2][]
  3. 2、安装firewalld

Center 3

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

Center 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的一些命令*******************************/

  1. 观察iptablesfirewalld使用的两组命令,发现三个常用的命令:servicechkconfigsystemctl。那么它们分别是做什么的呢?(去网上搜索了一下给出了答案)
  2. 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

总结:

  1. 记是记不住的,实操才可以,熟能生巧。
  2. 抓住一个问题,深入去挖,往往能挖出一片,从而扫清一片盲点。深挖能出清泉。

参考文章:

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

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读