当前位置: 首页 > article >正文

linux,防火墙,firewall,常用命令

文章目录

    • 1. 查看防火墙状态
    • 2. 查看当前开放的端口和服务
      • 查看所有开放的端口
      • 查看所有允许的服务
      • 查看所有区域的详细信息
    • 3. 开放指定端口
      • 开放端口(临时生效)
      • 开放端口(永久生效)
      • 开放指定端口范围
    • 4. 删除指定端口
      • 删除端口(临时生效)
      • 删除端口(永久生效)
    • 5. 开放指定服务
      • 开放服务(永久生效)
      • 删除服务
      • 查看所有可用服务
    • 6. 其他常用命令
      • 查看防火墙帮助信息
      • 查看防火墙版本
      • 查看所有可用的区域
      • 设置默认区域
      • 查看默认区域的设置
    • 7. 示例操作流程
    • 8. 注意事项


1. 查看防火墙状态

要检查 firewalld 是否正在运行,可以使用以下命令:

sudo firewall-cmd --state

• 输出示例 :
running:防火墙正在运行。
not running:防火墙未运行。


2. 查看当前开放的端口和服务

查看所有开放的端口

sudo firewall-cmd --list-ports

• 示例输出 :

80/tcp 443/tcp 6379/tcp

查看所有允许的服务

sudo firewall-cmd --list-services

• 示例输出 :

ssh http https mysql

查看所有区域的详细信息

如果你想查看特定区域的详细信息(默认区域通常是 public),可以使用:

sudo firewall-cmd --get-active-zones

这将显示当前活动的区域及其对应的接口和源地址。例如:

public
  interfaces: eth0
  sources:

然后,查看特定区域的详细信息:

sudo firewall-cmd --zone=public --list-all

• 示例输出 :

public (active)
  target: default
  interfaces: eth0
  sources:
  services: ssh http https
  ports: 80/tcp 443/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

3. 开放指定端口

开放端口(临时生效)

如果你希望开放某个端口(例如 6379/tcp),但不希望重启防火墙,可以使用 --add-port 选项:

sudo firewall-cmd --add-port=6379/tcp

• 说明 :此设置在防火墙重启后会失效。

开放端口(永久生效)

为了使端口开放设置在防火墙重启后依然有效,需要添加 --permanent 选项:

sudo firewall-cmd --permanent --add-port=6379/tcp

然后,重新加载防火墙配置以应用更改:

sudo firewall-cmd --reload

开放指定端口范围

如果你需要开放一个端口范围,可以使用 CIDR 表示法。例如,开放 50005100 的端口:

sudo firewall-cmd --permanent --add-port=5000-5100/tcp
sudo firewall-cmd --reload

4. 删除指定端口

删除端口(临时生效)

如果你希望临时删除某个端口(例如 6379/tcp),可以使用 --remove-port 选项:

sudo firewall-cmd --remove-port=6379/tcp

• 说明 :此设置在防火墙重启后会恢复,除非同时进行了永久删除。

删除端口(永久生效)

要永久删除某个端口,需要添加 --permanent 选项:

sudo firewall-cmd --permanent --remove-port=6379/tcp

然后,重新加载防火墙配置以应用更改:

sudo firewall-cmd --reload

5. 开放指定服务

除了直接开放端口,firewalld 还支持通过服务名称来管理端口。例如,开放 ssh 服务:

开放服务(永久生效)

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

删除服务

sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

查看所有可用服务

sudo firewall-cmd --get-services

• 示例输出 :

ssh http https ftp mysql redis ...

6. 其他常用命令

查看防火墙帮助信息

sudo firewall-cmd --help

查看防火墙版本

sudo firewall-cmd --version

查看所有可用的区域

sudo firewall-cmd --get-zones

设置默认区域

将默认区域设置为 public(通常默认就是 public):

sudo firewall-cmd --set-default-zone=public

查看默认区域的设置

sudo firewall-cmd --get-default-zone

7. 示例操作流程

假设你想开放 Redis 的默认端口 6379/tcp,并确保在防火墙重启后依然有效,可以按照以下步骤操作:

  1. 查看当前防火墙状态

    sudo firewall-cmd --state
    
  2. 查看当前开放的端口

    sudo firewall-cmd --list-ports
    
  3. 开放端口 6379/tcp(永久生效)

    sudo firewall-cmd --permanent --add-port=6379/tcp
    
  4. 重新加载防火墙配置以应用更改

    sudo firewall-cmd --reload
    
  5. 验证端口是否已开放

    sudo firewall-cmd --list-ports
    

    你应该能在输出中看到 6379/tcp


8. 注意事项

• 确保命令以 sudo 开头 :大多数 firewall-cmd 操作需要超级用户权限。
• 区分临时和永久设置 :仅使用 --add-port--add-service 而不加 --permanent 的更改在防火墙重启后会丢失。建议在确认配置正确后,使用 --permanent 并重新加载配置。
• 检查服务名称 :如果使用服务名称开放端口,确保服务名称正确。例如,Redis 的服务名称通常是 redis,但需要确认你的系统中是否已定义该服务。
• 安全性考虑 :仅开放必要的端口,并限制访问来源,以减少潜在的安全风险。例如,可以指定允许的 IP 地址或子网访问特定端口。



http://www.kler.cn/a/611050.html

相关文章:

  • 基于灵动微单片机SPIN系列的两轮车解决方案
  • java8循环解压zip文件---实现Excel文件数据追加
  • Elasticsearch 之 ElasticsearchRestTemplate 普通查询
  • EMC知识学习一
  • 利用Openfeign远程调用第三方接口(案例:百度地图逆地理编码接口,实现通过经纬度坐标获取详细地址)
  • 【工具分享 - Redis桌面客户端】Tiny RDM
  • Linux:(模拟HTTP协议,GET和POST方法,Http的状态码)
  • DeepSeek概述
  • Spring Boot 整合 OpenFeign 教程
  • 游戏引擎 Unity - Unity 主要窗口(层级、场景、游戏、检查器、项目、 控制台)
  • node-ddk,electron,主进程通讯,窗口间通讯
  • 图解AUTOSAR_SWS_UDPNetworkManagement
  • 26考研——图_图的应用(6)
  • Maven工具学习使用(一)——MAVEN安装与配置
  • 企业级基于SpringBoot的MQTT的构建和使用
  • Vue3项目中的.vscode文件夹
  • 【软考-架构】9.3、端口扫描-安全体系-网络安全技术和协议
  • 海思烧录工具HITool电视盒子刷机详解
  • 初识MySQL · 约束
  • 【react18】react项目使用mock模拟后台接口