今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通可以ping通。因而就去看防火墙,是否关闭或是否把6379端口放开了。php
因而就往这方面查问题,发现没有iptables文件,而后我启动iptables服务,报错。html
Centos 7
在启动iptables(防火墙)时报错:Failed to start IPv4 firewall with iptables.
nginx
缘由:由于centos7.0
默认不是使用iptables
方式管理,而是firewalld
方式。Centos6.0
防火墙用iptables
管理。(原来是这样,centos7默认防火墙时firewalld啊[笑哭]。:-D)redis
解决办法有两个:一是继续使用默认的firewalld
方式。二是关闭firewalld
,而后安装iptables
。之前都是用iptables,因此想换回来,因而找到以下切换教程。sql
从firewalld切换到iptables:关闭firewalld安装iptables
一、首先执行以下命令windows
1#关闭
2systemctl stop firewalld
3systemctl mask firewalld
二、而后安装iptables-services
centos
1#安装
2yum install iptables-services
3#设置开机启动
4systemctl enable iptables
三、开放443端口(HTTPS)app
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
tcp
四、保存防火墙配置学习
1service iptables save
2#或者
3/usr/libexec/iptables/iptables.init save
五、iptables的一些命令,中止/启动/重启 防火墙:
1systemctl [stop|start|restart] iptables
2#或者
3service iptables [stop|start|restart]
而后启动iptables服务,这样就搞定了。
可是,从firewalld切换到iptables后会有这样那样的问题,还不如用系统默认的。
从iptables切换回firewalld
一、先看firewalld的状态:inactivesystemctl status firewalld
二、安装firewalldyum install firewalld
三、切换
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
以下,查看开启的服务、端口