关闭 iptables 和 firewalld

https://blog.youkuaiyun.com/bbwangj/article/details/74502967?utm_source=blogxgwz0

iptables防火墙

1、基本操作

# 查看防火墙状态

service iptables status  

# 停止防火墙

service iptables stop  

# 启动防火墙

service iptables start  

# 重启防火墙

service iptables restart  

# 永久关闭防火墙

chkconfig iptables off  

# 永久关闭后重启

chkconfig iptables on

2、开启80端口

     vim /etc/sysconfig/iptables
    # 加入如下代码
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存退出后重启防火墙

service iptables restart

firewall防火墙

1、查看firewall服务状态

systemctl status firewalld

2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

    # 开启
    service firewalld start
    # 重启
    service firewalld restart
    # 关闭
    service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查询、开放、关闭端口

    # 查询端口是否开放
    firewall-cmd --query-port=8080/tcp
    # 开放80端口
    firewall-cmd --permanent --add-port=80/tcp
    # 移除端口
    firewall-cmd --permanent --remove-port=8080/tcp

    #重启防火墙(修改配置后要重启防火墙)
    firewall-cmd --reload
     
    # 参数解释
    1、firwall-cmd:是Linux提供的操作firewall的一个工具;
    2、--permanent:表示设置为持久;
    3、--add-port:标识添加的端口;
---------------------
作者:菲宇
来源:优快云
原文:https://blog.youkuaiyun.com/bbwangj/article/details/74502967
版权声明:本文为博主原创文章,转载请附上博文链接!

 

https://blog.youkuaiyun.com/jamesge2010/article/details/52449678

1、firewalld的基本使用

启动: systemctl start firewalld

查看状态: systemctl status firewalld 

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

 

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息:  firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

 

那怎么开启一个端口呢

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone= public --query-port=80/tcp

删除

firewall-cmd --zone= public --remove-port=80/tcp --permanent

### iptablesfirewalld之间的冲突原因 iptables firewalld 都是用来管理 Linux 系统防火墙规则的工具,但它们的工作机制不同。虽然两者最终都依赖于内核中的 netfilter 来执行实际的过滤操作,但由于它们各自维护独立的规则集,可能会导致规则覆盖或混乱的情况发生[^3]。 具体来说,CentOS 7 及之后版本默认使用 firewalld 而不是传统的 iptables 工具链。然而,许多管理员仍然习惯直接编辑 iptables 规则或者运行自定义脚本设置 iptables 参数。这种情况下,如果同时启用了 firewalld 并进行了某些配置更改,则可能导致两者的规则相互干扰甚至完全失效[^1]。 --- ### 解决方案 #### 方法一:优先选择一种工具并禁用另一种 为了防止潜在冲突,建议只保留其中一个作为主要防火墙管理手段: - 如果决定继续沿用传统方式即基于 `iptables` 的手动配置模式,则需关闭 `firewalld` 服务并将开机启动项移除: ```bash systemctl stop firewalld systemctl disable firewalld ``` - 若倾向于采用更现代化且动态调整能力更强的 `firewalld` ,那么应该卸载掉可能存在的旧版 `iptables-services` 包,并确保不会意外调用到原始命令形式下的静态表单更新逻辑: ```bash yum remove iptables-services systemctl start firewalld systemctl enable firewalld ``` 上述任选其一的操作可以有效规避因重复设定带来的不确定性风险[^2]。 #### 方法二:在 DOCKER-USER Chain 中添加特定规则 (针对 Docker 场景) 对于涉及容器化应用部署环境(如Docker),由于后者会自动向主机网络栈注入额外路由条目,单纯依靠外部框架控制内部通信行为往往难以奏效。此时推荐按照官方文档指引,在专门预留出来的子链条—— **DOCKER-USER** ——里追加个性化指令片段来达成目的[^4]: ```bash iptables -I DOCKER-USER -s 0.0.0.0/0 ! -d 192.168.1.0/24 -j DROP ``` 此例子展示了阻止来自任意公网地址访问本地私有网段资源的具体做法;当然也可以依据实际情况灵活修改匹配条件参数列表以满足多样化需求场景。 > 特别提醒:无论采取何种策略组合,请务必确认当前生效状态确实符合预期目标后再投入生产环节测试验证! --- ### 总结 综上所述,iptable 与 firewalld 存在一定的功能重叠区域,因此容易引发不必要的矛盾现象。通过合理规划选用单一途径或是精心设计兼容型架构均能够妥善处理此类难题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值