• Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables


     

    今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通能够ping通。于是就去看防火墙,是否关闭或是否把6379端口放开了。

    于是就往这方面查问题,发现没有iptables文件,然后我启动iptables服务,报错。

    Centos 7在启动iptables(防火墙)时报错:
    Failed to start IPv4 firewall with iptables.

    原因:因为centos7.0默认不是使用iptables方式管理,而是firewalld方式。Centos6.0防火墙用iptables管理。(原来是这样,centos7默认防火墙时firewalld啊[笑哭]。:-D)

    解决办法有两个:一是继续使用默认的firewalld方式。二是关闭firewalld,然后安装iptables。以前都是用iptables,所以想换回来,于是找到如下切换教程。

    从firewalld切换到iptables:关闭firewalld安装iptables

    1、首先执行如下命令

    1#关闭
    2systemctl stop firewalld
    3systemctl mask firewalld

    2、然后安装iptables-services

    1#安装
    2yum install iptables-services
    3#设置开机启动
    4systemctl enable iptables

    3、开放443端口(HTTPS)

    iptables -A INPUT -p tcp --dport 443 -j ACCEPT

    4、保存防火墙配置

    1service iptables save
    2#或者
    3/usr/libexec/iptables/iptables.init save

    5、iptables的一些命令,停止/启动/重启 防火墙:

    1systemctl [stop|start|restart] iptables
    2#或者
    3service iptables [stop|start|restart]

    然后启动iptables服务,这样就搞定了。

    但是,从firewalld切换到iptables后会有这样那样的问题,还不如用系统默认的。

    从iptables切换回firewalld

    1、先看firewalld的状态:inactive
    systemctl status firewalld

    2、安装firewalld
    yum install firewalld

    3、切换

    1#关闭iptables
    2systemctl mask iptables
    3systemctl stop iptables
    4#切换
    5systemctl unmask friewalld
    6systemctl start friewalld

    总算恢复了。

    饶了一大圈,最后找到这篇文章
    windows本地连不上虚拟机redis服务完美解决,解决了这个问题。

    附:firewalld相关命令

    常用命令

     1#查看状态,是否已经安装firewalld
    2systemctl status firewalld
    3#开启防火墙
    4systemctl startfirewalld.service
    5#关闭防火墙
    6systemctl stop firewalld.service
    7#设置开机自动启动
    8systemctl enable firewalld.servic
    9#设置关闭开机制动启动
    10systemctl disable firewalld.service
    11#在不改变状态的条件下重新加载防火墙
    12firewall-cmd --reload

    启用某个服务

    1#临时
    2firewall-cmd --zone=public --add-service=https
    3#永久
    4firewall-cmd --permanent --zone=public --add-service=https

    开启某个端口

    1#永久
    2firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
    3#临时
    4firewall-cmd  --zone=public --add-port=8080-8081/tcp

    查看开启的端口和服务

    1#查看开启的服务 空格隔开
    2firewall-cmd --permanent --zone=public --list-services
    3#查看开启的端口 空格隔开
    4firewall-cmd --permanent --zone=public --list-ports
    5#修改配置后需要重启服务使其生效
    6systemctl restartfirewalld.service
    7#查看服务是否生效 (例:添加的端口为8080)
    8firewall-cmd --zone=public --query-port=8080/tcp 

    如下,查看开启的服务、端口

  • 相关阅读:
    Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明
    Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api
    Struts 框架 之 文件上传下载案例
    Struts 之 通配符 路径匹配 常量用法 配置默认值
    Struts框架之 执行流程 struts.xml 配置详细
    Struts 框架 之 Hello World
    JSP include HTML出现乱码 问题解决
    java 集合 Connection 栈 队列 及一些常用
    java Gui编程 事件监听机制
    java 网络编程 UDP TCP
  • 原文地址:https://www.cnblogs.com/ibigboy/p/12011481.html
Copyright © 2020-2023  润新知