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的状态:inactivesystemctl status firewalld
2、安装firewalldyum 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
如下,查看开启的服务、端口
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?