跳到主要内容
不要错过新客户专属 20% 折扣优惠! 优惠码: KAVESNET20 已复制 |
UFW

什么是 UFW?如何使用?Linux 防火墙管理指南

用 UFW(Uncomplicated Firewall)在 Linux 服务器上开关端口、IP 白名单、rate limit 与 fail2ban 集成。

KavesNET 团队 2026年2月5日 2 分钟阅读
UFW Linux 防火墙图片

觉得 iptables 复杂?UFW(Uncomplicated Firewall) 是 Ubuntu/Debian 的默认防火墙——「人性化的 iptables」。几条命令就能在服务器上配好防火墙,只开你要的端口。本指南讲 UFW 的基础与实用用法。

为什么必须有防火墙?

每个开放端口都是攻击面。Linux 默认安装中,未启用的服务端口也可能可达。防火墙只放行你想要的,拒绝其他。

安装 UFW

Ubuntu 默认安装。否则:

sudo apt update && sudo apt install ufw -y

AlmaLinux/RHEL 不用 UFW,用 firewalld

基本用法

sudo ufw status                    # 状态
sudo ufw status verbose            # 详细
sudo ufw enable                    # 启用
sudo ufw disable                   # 禁用
sudo ufw reset                     # 重置所有规则

关键:别把 SSH 锁外!

启用前务必先放行 SSH——否则你自己被锁外!

sudo ufw allow 22/tcp
# 或自定义端口:
sudo ufw allow 2222/tcp

然后:

sudo ufw enable

常用端口放行

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

# 邮件
sudo ufw allow 25,465,587,993,995/tcp

# FTP
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp

# MySQL(仅特定 IP)
sudo ufw allow from 1.2.3.4 to any port 3306

# 服务名
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

按 IP 放行/拒绝

sudo ufw allow from 1.2.3.4
sudo ufw allow from 1.2.3.4 to any port 22
sudo ufw allow from 192.168.1.0/24
sudo ufw deny from 5.6.7.8

关闭端口/删除规则

sudo ufw status numbered
sudo ufw delete 3

sudo ufw delete allow 80/tcp

Rate-limit(防暴力破解)

UFW 内置限速——30 秒内超过 6 次连接则封禁:

sudo ufw limit 22/tcp

SSH 黄金规则——fail2ban 的简易替代。

仅 Cloudflare 模式(Web 服务器)

只允许通过 Cloudflare 访问:

sudo ufw deny 80/tcp
sudo ufw deny 443/tcp

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
    sudo ufw allow from $ip to any port 80,443 proto tcp
done

详情见我们的 DDoS 文章

日志

sudo ufw logging on
sudo ufw logging high
sudo tail -f /var/log/ufw.log

fail2ban 集成

UFW + fail2ban = 双层防暴力破解:

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

/etc/fail2ban/jail.local

[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
banaction = ufw
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

常见错误

  • enable 前忘记 SSH:锁外了——通过 KavesNET VNC 控制台连入
  • 与 Plesk 冲突:Plesk 自管防火墙——要么 Plesk 要么 UFW,不能同时。见 Plesk 文章
  • 忽视 IPv6:检查 /etc/default/ufwIPV6=yes
  • Default deny incoming:新装默认 deny——每项服务必须明确 allow

Quick-start

新 VDS 典型配置:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw limit 22/tcp
sudo ufw enable
sudo ufw status verbose

5 行搞定安全基线。

相关:SSH 连接 · DDoS 防护

标签 UFW 防火墙 Linux 安全

相关 文章

您可能也喜欢这些。

联系我们