❤️
✨

Linux 防火墙 firewalld 安装与端口管理指南

Linux 防火墙 firewalld 安装与端口管理指南

前言

firewalld 是 CentOS 7 / RHEL 7 及更新版本默认的防火墙管理工具,基于 zone 模型提供动态管理能力,相比旧版 iptables 上手门槛更低。本文覆盖从安装到端口放行的完整操作流程。

一、安装 firewalld

yum install firewalld -y

注意:CentOS 7 及以上版本通常已预装。如果系统用的是 dnf(CentOS 8+ / Fedora),将 yum 替换为 dnf 即可。

二、启停管理

启动与查看状态

# 启动防火墙

systemctl start firewalld

# 查看运行状态

systemctl status firewalld.service

systemctl status 输出中关注 Active: active (running) 表示已运行。

停止与禁用

# 临时关闭(重启后恢复)

systemctl stop firewalld.service

# 永久禁用(禁止开机自启)

systemctl disable firewalld

重要区别:stop 只影响当前运行态,重启后会恢复;disable 控制开机自启。生产环境建议用 disable 而非直接卸载。

三、开启端口

添加端口规则

firewall-cmd --zone=public --add-port=443/tcp --permanent

firewall-cmd --zone=public --add-port=8081/tcp --permanent

参数说明

参数含义--zone作用域,public 为默认公共区域--add-port端口与协议,格式 端口号/协议(tcp / udp)--permanent写入永久配置,不加此参数仅当前会话有效,重启后丢失

使规则生效

firewall-cmd --reload

--reload 会重新加载配置,不会中断已有连接,比 iptables 的 restart 更加安全。

完整操作流程

# 1. 开放端口

firewall-cmd --zone=public --add-port=443/tcp --permanent

firewall-cmd --zone=public --add-port=8081/tcp --permanent

# 2. 重载配置使其生效

firewall-cmd --reload

# 3. 验证端口是否已开放

firewall-cmd --zone=public --list-ports

输出示例:

443/tcp 8081/tcp

四、常用检查命令

查看已开放的所有端口

firewall-cmd --zone=public --list-ports

查看完整规则列表(含服务、端口、富规则)

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

检查某个端口是否已开放

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

返回 yes 表示已开放,no 表示未开放。

查看连接状态(netstat)

netstat -an | grep 443

参数:

参数含义-a显示所有连接和监听端口-n以数字形式显示地址和端口(不解析域名)

现代系统推荐用 ss 替代 netstat:ss -tlnp | grep 443

五、Zone 简介

firewalld 预置了多个 zone,安全等级从高到低:

Zone信任级别适用场景drop最低丢弃所有入站包,无任何回复block很低拒绝所有入站,返回拒绝消息public默认不信任其他计算机,仅开放指定端口external中等NAT 网关场景,开启 IP 伪装dmz中等隔离区,允许部分入站work较高工作环境,基本信任home较高家庭环境internal较高内部网络trusted最高接受所有连接

日常管理通常使用 public 即可。

查看当前默认 zone

firewall-cmd --get-default-zone

切换默认 zone

firewall-cmd --set-default-zone=home

总结速查

操作命令安装yum install firewalld -y启动systemctl start firewalld查看状态systemctl status firewalld.service停止systemctl stop firewalld.service永久禁用systemctl disable firewalld开放端口firewall-cmd --zone=public --add-port=443/tcp --permanent重载配置firewall-cmd --reload查看已开放端口firewall-cmd --zone=public --list-ports查看完整规则firewall-cmd --zone=public --list-all查询单个端口firewall-cmd --zone=public --query-port=443/tcp查看端口连接ss -tlnp | grep 443

掌握这些命令基本覆盖日常服务器端口管理的全部需求。

🎀 相关推荐

关于 iOS 11.0.2 的安全性内容
英国365bet体育在线

关于 iOS 11.0.2 的安全性内容

📅 06-17 👀 6263
天涯明月刀奇峰成就坐标,天涯明月刀奇峰位置揭秘
英国365bet体育在线

天涯明月刀奇峰成就坐标,天涯明月刀奇峰位置揭秘

📅 08-15 👀 2942
如何永久消灭墙上的蚂蚁
英国365bet体育在线

如何永久消灭墙上的蚂蚁

📅 11-03 👀 7664