跳到主要内容 Ubuntu 24.04 LTS ufw 防火墙完整配置指南 | 极客日志
Shell / Bash
Ubuntu 24.04 LTS ufw 防火墙完整配置指南 本文详细介绍 Ubuntu 24.04 LTS 系统中 ufw 防火墙的配置与管理。内容涵盖基础操作如启用禁用及状态查看,核心功能包括端口和服务规则的允许或拒绝设置,支持特定 IP、网段及端口范围的访问控制。进阶场景涉及 SSH 安全加固、ICMP 调试、NAT 端口转发及开机自启持久化。此外还提供远程锁机恢复、规则冲突排查等常见问题解决方案,适用于 Linux 新手入门及运维人员日常安全维护。
GitMaster 发布于 2026/3/28 更新于 2026/4/14 1 浏览Ubuntu 24.04 LTS ufw 防火墙完整配置指南
在 Linux 服务器运维中,防火墙是保障系统安全的第一道防线。对于 Ubuntu 24.04 LTS 系统而言,ufw(Uncomplicated Firewall,简易防火墙)是官方内置的轻量级防火墙工具,它基于 iptables 进行封装,无需掌握复杂的 iptables 语法,通过简洁的命令即可实现端口管理、IP 限制、访问控制等核心防护功能。
本文将从基础操作到进阶配置,再到常见问题排查,全方位拆解 ufw 的使用方法,结合实测案例说明每一步操作的意义,适合 Linux 新手快速上手,也可作为运维人员的日常参考手册,确保服务器端口安全、合理开放。
一、前提说明(新手必看,避免踩坑)
预装情况 :ufw 已默认预装在 Ubuntu 24.04 LTS 系统中,无需额外安装;若检测到缺失(执行 ufw 命令提示不存在),可通过 快速安装。
sudo apt install ufw -y
权限要求 :所有 ufw 配置命令均需 root 权限,全程使用 sudo 前缀执行,避免权限不足导致操作失败。
核心警告 :若通过 SSH 远程连接服务器配置 ufw,务必先配置 SSH 允许规则,再启用防火墙 !否则会直接被锁机,无法远程连接(只能通过本地终端/虚拟机控制台恢复)。
二、基础操作:启用/禁用/状态查看(入门必备) ufw 的基础操作主要围绕'状态查看''启用''禁用''重置'展开,命令简洁,执行后即时反馈结果,新手可快速上手。
1.查看 ufw 当前状态(最常用) 通过不同参数,可查看简洁状态、详细状态或带编号的规则,适配不同场景需求:
sudo ufw status
sudo ufw status verbose
sudo ufw status numbered
默认情况下,ufw 状态为 inactive(未启用),无任何自定义规则;启用后状态变为 active,并显示已配置的所有规则。
2.启用 ufw 防火墙 启用成功后,终端会输出:Firewall is active and enabled on system startup,表示防火墙已激活,且设置为开机自启(无需额外配置)。
3.禁用 ufw 防火墙 若需临时关闭防火墙(如调试服务、排查端口问题),执行以下命令:
禁用后,所有 ufw 规则暂时失效,系统不再进行端口访问控制,调试完成后建议重新启用。
4.重置 ufw 配置(恢复默认) 若规则配置混乱、出现冲突,或想重新配置 ufw,可执行重置命令(谨慎使用,会清除所有自定义规则):
重置后,ufw 恢复为默认状态(inactive),所有允许/拒绝规则、端口配置全部清空,可重新开始配置。
三、核心配置:端口/服务规则管理(重点) ufw 支持通过「端口号」或「服务名」配置访问规则(服务名对应 /etc/services 文件,如 ssh=22、http=80、https=443),规则优先级遵循:更具体的规则 > 通用规则 ,且规则添加后立即生效(需确保 ufw 处于 active 状态)。
1.允许入站连接(常用场景,必学) 入站连接控制是 ufw 的核心功能,以下是日常运维中最常用的允许规则,覆盖远程管理、网页服务、数据库等场景:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3306/tcp
sudo ufw allow 5432/tcp
sudo ufw allow 8080/udp
sudo ufw allow 1000:2000/tcp
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow from 192.168.1.100
sudo ufw allow from 192.168.1.0/24 to any port 22/tcp
sudo ufw allow in on eth0 to any port 80/tcp
2.拒绝入站连接 ufw 默认策略已拒绝所有未明确允许的入站连接,若需针对性拒绝某个 IP、端口(如黑名单、防止恶意扫描),可执行以下命令:
sudo ufw deny from 192.168.1.200
sudo ufw deny 3389/tcp
sudo ufw deny from 10.0.0.0/8 to any port 3306/tcp
3.允许/拒绝出站连接 ufw 默认允许所有出站连接(服务器可正常访问外部网络,如下载依赖、更新系统),若需限制出站连接(如增强安全性、禁止访问外部无关端口),可参考以下配置:
sudo ufw default deny outgoing
sudo ufw allow outgoing 22/tcp
sudo ufw allow outgoing 80/tcp
sudo ufw allow outgoing 443/tcp
sudo ufw allow outgoing 3306/tcp
4.删除规则(易错点,重点掌握) 删除规则前,建议先通过 sudo ufw status numbered 查看规则编号(最精准),避免删除错误规则,以下是两种常用删除方法:
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 80/tcp
sudo ufw delete deny from 192.168.1.200
注意:删除规则后立即生效,无需重启 ufw,若删除错误,重新添加对应规则即可。
四、进阶配置:常见场景实战(运维必备) 结合实际运维场景,整理 4 个高频进阶配置,直接复制命令即可使用,覆盖服务器基础防护、防暴力破解、ping 测试、端口转发等需求。
1.服务器基础防护(推荐所有服务器配置) 适合 Web 服务器、应用服务器、数据库服务器,仅开放必要端口,拒绝无关访问,最大化提升安全性:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 3306/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
2.限制 SSH 连接(防暴力破解,重点) SSH 端口(22)是远程管理的入口,易被暴力破解,通过以下配置限制访问来源或连接频率,提升安全性:
sudo ufw allow from 192.168.1.0/24 to any port 22/tcp
sudo ufw deny 22/tcp
sudo ufw limit ssh/tcp
3.允许 ICMP(ping 测试,调试必备) 默认情况下,ufw 允许出站 ping(服务器可 ping 通其他机器),但禁止入站 ping(其他机器无法 ping 通服务器),若需调试网络,可允许入站 ping:
sudo ufw allow in proto icmp from any to any icmp-type echo-request
sudo ufw allow out proto icmp from any to any icmp-type echo-reply
4.配置 NAT/端口转发(需内核支持) 若需将服务器端口转发到内网其他机器(如将服务器 8080 端口转发到内网 192.168.1.10 的 80 端口),需先启用内核 IP 转发,再配置转发规则:
sudo sysctl net.ipv4.ip_forward=1
sudo nano /etc/sysctl.conf
sudo sysctl -p
sudo ufw route allow in on eth0 from any to any port 8080/tcp to 192.168.1.10 port 80/tcp
五、开机自启与规则持久化 ufw 启用后,默认已设置为开机自启,所有自定义规则会自动持久化到 /etc/ufw/ 目录下,重启服务器后规则不会丢失,无需额外配置。
若需确认自启状态,或手动调整自启设置,执行以下命令:
sudo systemctl status ufw
sudo systemctl enable ufw
sudo systemctl disable ufw
六、常见问题排查(新手救星) 整理 4 个 ufw 配置中最常见的问题,包含原因分析和解决方案,新手遇到问题可直接对照排查。
1.远程连接被锁机(SSH 无法连接) 原因 :启用 ufw 前未允许 SSH 端口(22/tcp),默认策略拒绝所有入站连接,导致远程连接被阻断。
解决方案 :通过本地终端/虚拟机控制台登录服务器,执行 sudo ufw allow ssh,然后重新启用 ufw(sudo ufw enable),即可恢复远程连接。
2.规则添加后不生效 常见原因 :ufw 未启用、规则冲突(如先允许再拒绝,以最后一条规则为准)、规则配置不精准(如端口协议错误)。
确认 ufw 处于启用状态:sudo ufw status(需显示 active);
查看规则是否冲突:sudo ufw status verbose,删除冲突规则;
重启 ufw 使规则生效:sudo ufw disable && sudo ufw enable。
3.无法访问外部网络(出站被限制) 原因 :误将默认出站策略设置为 deny(拒绝所有出站),且未配置允许的出站规则。
解决方案 :恢复默认出站策略:sudo ufw default allow outgoing,然后根据需求添加必要的出站规则。
4.查看 ufw 日志(排查异常连接) 若需排查异常连接、规则生效情况,可启用 ufw 日志,查看连接记录:
sudo ufw logging on
sudo ufw logging full
sudo tail -f /var/log/ufw.log
sudo ufw logging off
七、总结与实用技巧
1.核心操作流程(新手必记) ufw 配置核心逻辑:允许必要端口 → 配置默认策略 → 启用防火墙 → 验证规则 ,无需过度开放端口,仅保留业务必需端口,即可最大化提升服务器安全性。
2.快速查看端口策略技巧
快速查看:sudo ufw status(适合确认防火墙状态和核心规则);
详细查看:sudo ufw status verbose(适合确认规则细节、默认策略);
数字端口 + 编号:sudo ufw status numbered(适合删除规则);
过滤查看:sudo ufw status verbose | grep -E "ALLOW|To"(仅看允许规则)、sudo ufw status verbose | grep -E "DENY|To"(仅看拒绝规则)。
微信扫一扫,关注极客日志 微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具 Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown 转 HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
HTML 转 Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
JSON美化和格式化 将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online