关于ufw、firewalld及iptables之间的关系整理

本文介绍了Linux系统中常见的防火墙UFW、firewall和iptables,强调它们可能同时存在于同一系统并相互影响。在Ubuntu 20.04服务器上的案例展示了当firewall和ufw开启时可能导致端口无法正常连接。排查端口开放问题的步骤包括检查netstat、firewall状态和ufw状态。对于新手来说,通常不建议直接修改iptables,以免引入底层错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到有篇相关文章介绍如下,指出三者是在不同的linux系统版本中的防火墙,但这种说法并不完全,会让人误解为他们是互不影响的独立关系。

UFW、firewall、iptables防火墙配置 常见的linux系统防火墙有:UFW、firewall、iptables,其中,UFW是Debian系列的默认防火墙,firewall 是红帽系列7及以上的防火墙(如CentOS7.x),iptables是红帽系列6及以下(如CentOS6.x)的防火墙。

事实上,他们很可能同时安装在同一个系统上,并且相互作用影响!
首先,iptables是最底层、最古老的防火墙系统,所有系统都会存在此防火墙,但一般而言只需保证该防火墙处于完全开放状态即可,其他不用管他,更不需要复杂的配置。而ufw和firewall都是较新linux系统上的替代iptables的工具,当他们同时安装在服务器上时,两者之间就会存在冲突

笔者在ubuntu20.04服务器上,测试端口开放情况,排查了ufw和iptables,发现端口明明已经开放,但仍然无法连接,最后通过firewall-cmd --state发现firewall处于开启状态,用service firewalld stop将其暴力关闭后,端口开放正常。
而关闭firewall之后,再次开启ufw,发现端口又无法连接。
至此得出结论,firewall和ufw可共同影响服务器,任一防火墙开启都会使端口无法连接。

端口是否开放排查思路(以mysql数据库为例):

  1. netstat -anp |grep 3306
    首先查看端口监听情况。以确定对应的服务是否启动成功,及是否允许外部ip访问。若显示如下,则表示正常开启,且允许所有ip访问。(下图的第三列需要保证为0.0.0.0.0或::::,才是允许所有ip访问。若不是这个,需要在软件内部配置处设置,如mysql需要到)
    在这里插入图片描述
  2. 使用firewall-cmd --state排查firewall状态,若开启,则开放对应端口或暴力关闭防火墙;
  3. 使用ufw status排查ufw状态,若开启,则开放对应端口或暴力关闭防火墙;

一般而言,较新的linux系统(不论是centos还是ubuntu)经过以上三步即可排查完成。还有一些教程是需要配置复杂的iptables,但其实并不需要,一不小心还容易造成未知的底层错误,因此,对于新手不建议修改iptables。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RicardoOzZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值