博客访客专享:额外赠送 3 个月免费使用期 + 三年计划 10% 折扣 YSBLOG10
抢购

如何在Linux服务器上安装UFW(2026版分步指南)

在 Linux 服务器上安装 UFW更新软件包,安装ufw软件包,设置默认策略(拒绝入站流量,允许出站流量),允许 SSH并启用防火墙。UFW(简易防火墙)是一个对新手友好的 iptables/nftables 界面,可帮助您快速保护开放端口,同时保持关键服务的可访问性。

保护一台全新的 Linux 服务器应该从防火墙开始。在本指南中,您将学习如何在 Linux 服务器环境(基于 Ubuntu/Debian 和 RHEL 的系统)上安装 UFW,配置安全的默认设置,打开必要的端口,并应用生产环境中常用的最佳实践。我将分享实用的步骤、实际技巧以及需要避免的常见陷阱。

什么是UFW?为什么要使用它?

如何在Linux服务器上安装UFW(2026版分步指南)

UFW(Uncomplicated Firewall,简易防火墙)是一个命令行工具,可以简化 Linux 防火墙的配置。 management。它在iptables/nftables之上提供了可读性更强的语法,使得定义诸如“允许”之类的规则变得更加容易。 SSH或“允许 443/tcp”。它在 Ubuntu 服务器上尤其流行,但也可通过 EPEL 在 Debian 和 RHEL 衍生版本上使用。

为什么选择UFW?

  • 语法对初学者友好,默认值可预测
  • 快速开启/关闭端口和服务
  • 支持 IPv4 以及 IPv6
  • 常用应用程序的配置文件(Nginx, Apache,打开SSH)
  • 在VPS上运行良好。 专用服务器以及本地主机

先决条件和安全检查清单

在 Linux 服务器环境中安装 UFW 之前,请确认满足以下先决条件。这可以避免您被锁定在服务器之外,尤其是在远程 VPS 实例上。

  • SSH ACCESS 具有 sudo 权限
  • 您必须保持开放的服务端口(例如,22/SSH(80/HTTP,443/HTTPS)
  • 与您的计划(AWS、GCP、Azure)相匹配的云防火墙/安全组
  • 控制台/串口访问作为一种安全保障(大多数主机提供商都提供此服务)

黄金法则:永远允许 SSH 启用 UFW 之前。

如何在 Ubuntu 和 Debian 上安装 UFW

Ubuntu 在其主要软件仓库中自带 UFW,并且通常已预装。如果没有预装,请使用 apt 命令安装。

sudo apt update
sudo apt install ufw -y

# Check status (should be inactive before you configure it)
sudo ufw status verbose

设置安全默认值,允许 SSH然后启用UFW:

# Deny unsolicited inbound, allow all outbound
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Allow SSH (use application profile or port)
sudo ufw allow OpenSSH
# or
sudo ufw allow 22/tcp

# Enable the firewall
sudo ufw enable

# Verify
sudo ufw status numbered
sudo ufw status verbose

在 Debian 系统中,命令完全相同。请确保您的软件包列表是最新的,并且您已允许安装。 SSH 启用之前。

如何在 RHEL、CentOS、AlmaLinux 和 Rocky 上安装 UFW

基于 RHEL 的发行版通常默认使用 firewalld。您仍然可以通过从 EPEL 软件仓库安装 UFW 来使用它。请决定是否从 firewalld 切换到 UFW;切勿同时运行这两个程序。

# Enable EPEL
sudo dnf install epel-release -y
# Install UFW
sudo dnf install ufw -y

# Stop and disable firewalld if you intend to use UFW instead
sudo systemctl stop firewalld
sudo systemctl disable firewalld

# Enable UFW service at boot on some RHEL-based systems
sudo systemctl enable ufw

# Configure and enable as usual
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

如果您希望保留 firewalld(推荐用于原生 RHEL 环境),则可以跳过 UFW 并直接配置 firewalld。这完全取决于您的个人偏好;两者皆可。 manage 底层使用了 nftables/iptables。

UFW 基本配置步骤

在 Linux 服务器系统上安装 UFW 后,应用以下核心配置以保护您的机器并保持其功能。

设置默认策略并启用

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

允许常用服务(网页、邮件、数据库)

只打开你需要的内容。对于 Web 服务器:

# HTTP and HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Alternatively, use application profiles if present
sudo ufw app list
sudo ufw allow "Nginx Full"   # opens 80 and 443
sudo ufw allow "Apache Full"

对于数据库(除非必要,否则切勿公开):

# MySQL/MariaDB (3306) - ideally restrict to specific hosts
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp

# PostgreSQL (5432)
sudo ufw allow from 203.0.113.10 to any port 5432 proto tcp

允许非标准 SSH 港口

如果你跑步 SSH 如果未使用自定义端口(例如 2222),则允许该端口访问,并移除端口 22 的访问权限。

sudo ufw allow 2222/tcp
# Optional: deny default 22 if not used
sudo ufw delete allow 22/tcp
sudo ufw reload

仅允许特定 IP 地址或子网

限制对管理端口的访问(通过源 IP 地址),以减少攻击面。

# Restrict SSH to an office IP
sudo ufw allow from 198.51.100.25 to any port 22 proto tcp

# Allow a whole subnet (CIDR)
sudo ufw allow from 203.0.113.0/24 to any port 22 proto tcp

端口范围和协议

# Allow a TCP port range (e.g., passive FTP 40000-40100)
sudo ufw allow 40000:40100/tcp

# Allow UDP (e.g., DNS, WireGuard)
sudo ufw allow 53/udp
sudo ufw allow 51820/udp

管理和审核UFW规则

保持规则集简洁且易于审核。这些命令有助于维护秩序。

# List current rules with numbers
sudo ufw status numbered

# Delete a rule by number
sudo ufw delete 3

# Disable or re-enable UFW
sudo ufw disable
sudo ufw enable

# Reload after changes
sudo ufw reload

# Reset to factory defaults (use with caution)
sudo ufw reset

备份时,请复制UFW用户规则文件:

sudo cp /etc/ufw/user.rules ~/user.rules.backup
sudo cp /etc/ufw/user6.rules ~/user6.rules.backup

高级选项和最佳实践

启用 IPv6

如果您的服务器有 IPv6确保 UFW manage就这样。编辑配置并重启UFW。

sudo nano /etc/ufw/ufw.conf
# Set:
IPV6=yes

# Apply
sudo ufw disable
sudo ufw enable

速率限制 SSH 以及其他敏感服务

限速技术通过限制重复连接来减少暴力攻击噪声。

# Limit SSH
sudo ufw limit 22/tcp

# Limit custom SSH port
sudo ufw limit 2222/tcp

开启日志记录(谨慎操作)

UFW 可以记录丢包信息以进行诊断。一般情况下使用“低”设置,调试时可临时使用“中/高”设置。

# Enable logging
sudo ufw logging low

# Check logs
sudo tail -f /var/log/ufw.log  # on some systems: /var/log/syslog

使用应用程序配置文件

许多软件包会在 /etc/ufw/applications.d 目录下安装 UFW 配置。它们简化了同时打开多个端口的操作。

sudo ufw app list
sudo ufw app info "Nginx Full"
sudo ufw allow "Nginx Full"

将 UFW 与 Fail2ban 结合使用

Fail2ban 会根据日志模式动态阻止恶意 IP 地址。它与 UFW 防火墙完美集成,无需替换防火墙规则即可添加临时封禁。

# Ubuntu/Debian
sudo apt install fail2ban -y

# RHEL-based
sudo dnf install fail2ban -y

# Basic enable
sudo systemctl enable --now fail2ban

云防火墙、容器和UFW

At YouStable我们建议采用分层控制:先使用云安全组限制广泛访问,然后在每台虚拟机上部署 UFW 进行主机级过滤。确保两层控制都允许所需的端口;端口不匹配会导致“服务器上可以正常工作”的误解。

使用 Docker?Docker 会直接操作 iptables,并可能绕过 UFW 防火墙对容器流量的规则。请注意:

  • 使用 -p 仅发布必要的端口
  • 使用反向代理容器,仅暴露 80/443 端口
  • 探索 Docker 守护进程选项和用户自定义网络
  • 防火墙更改后测试容器可达性

对于 Kubernetes 和高级容器部署,主机防火墙与 CNI 插件可以共存。上线前,请对策略进行端到端验证。

UFW故障排除

如果启用 UFW 后出现问题,请按部就班地进行排查。

  • 检查端口监听器:sudo ss -tulpen | grep LISTEN
  • 验证规则:sudo ufw status numbered
  • 查看日志:sudo tail -f /var/log/ufw.log(或 /var/log/syslog)
  • 暂时允许所有出站和特定入站服务
  • 检查云服务提供商的防火墙/安全组规则
  • 对于远程锁定,请使用网络服务提供商的控制台禁用 UFW:sudo ufw disable

实际案例:安全的 LEMP 协议栈

以下是生产环境 LEMP 服务器的最小规则集: SSH 在端口 22 上, Nginx 在 80/443 上,以及 MySQL 仅限受信任的应用服务器。

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow 22/tcp
sudo ufw allow "Nginx Full"
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp

sudo ufw limit 22/tcp
sudo ufw logging low

sudo ufw enable
sudo ufw status verbose

为什么 UFW 对接待至关重要以及如何 YouStable 帮助

防火墙可以降低风险敞口,并争取时间抵御自动扫描和机会主义攻击。UFW 的清晰性意味着更少的错误和更快的修复速度。如果您使用 UFW 进行托管, YouStable我们的专家可以预先加固您的 VPS 或专用服务器,为您的堆栈设置正确的 UFW 规则,并使其与云防火墙策略保持一致,以防止停机。

常见问题解答:在 Linux 服务器上安装 UFW

UFW 比 iptables 或 firewalld 更好吗?

UFW 并非“更好”,而是更简单。它是 iptables/nftables 的前端,专注于易用性。firewalld 是 RHEL 系统原生支持的,并与系统工具集成。选择 UFW 便于阅读和快速设置对于原生 RHEL 工作流程,可以使用 firewalld;对于精细控制,可以使用原始 iptables/nftables。

启用UFW会让我无法访问吗? SSH?

如果你在未允许的情况下启用它,它就可能会出现问题。 SSH 首先,始终运行 sudo ufw allow OpenSSH 在执行 `sudo ufw enable` 命令之前,请确保端口号正确(或端口号正确)。如果被锁定,请使用主机提供商的控制台禁用 UFW 并修复规则。

如何使用UFW打开端口?

使用 `sudo ufw allow PORT/PROTO` 命令,例如 `sudo ufw allow 443/tcp`。要按源 IP 地址限制流量,请使用:`sudo ufw allow from 203.0.113.5 to any port 443 proto tcp`。使用 `sudo ufw status` 命令进行验证。

UFW是否支持 IPv6?

是的。在 /etc/ufw/ufw.conf 文件中将 IPV6 设置为 yes,然后重新启用 UFW。 manage 都 IPv4 以及 IPv6 规则,确保对等性,这样您就不会无意中暴露服务。 IPv6.

如何允许指定端口范围或特定协议?

对于地址范围:sudo ufw allow 10000:10100/tcp。对于 UDP:sudo ufw allow 53/udp。为了清晰起见并确保最小权限原则,请始终指定 tcp 或 udp。

如何将UFW重置为默认设置?

运行 `sudo ufw reset` 命令。这将禁用 UFW 并删除所有规则。重新应用您所需的规则,允许访问。 SSH然后重新启用UFW。建议先备份/etc/ufw/user.rules文件。

UFW 是否支持 Docker?

Docker 会直接修改 iptables 规则,并可能绕过 UFW 防火墙链来处理容器流量。因此,请尽量减少已发布的端口数量,优先使用反向代理,并在更改后测试网络连接。对于复杂的网络配置,建议使用专用的网络策略或带有 Docker 感知规则的 firewalld 防火墙。

结语

在 Linux 服务器上安装 UFW 只需几分钟,即可显著提升基础安全性。设置保守的默认选项,仅开放必要的访问权限,并定期进行审计。如果您需要一款适用于您业务堆栈的生产级防火墙, YouStable 可以预先配置 UFW 以及服务器加固,以便快速启动并保持安全。

分享通过:

普拉拉德·普拉贾帕蒂

Prahlad是一位来自印度的网站托管专家和专注于SEO的自然增长专家。自2019年以来,他一直活跃于数字领域,致力于通过简洁、可持续的策略帮助客户发展网站。他热爱学习,并能快速适应变化,坚信细节决定成败。了解他对网站托管和SEO的独到见解,提升您的在线影响力。

发表评论

您的电邮地址不会被公开。 必填项 *

滚动到顶部