如果你刚接触 Linux,听到 "防火墙" 可能会觉得高深莫测。但今天要介绍的ufw(Uncomplicated Firewall),光看名字就知道 —— 它是一款 "不复杂" 的防火墙工具,专为小白设计,用简单的命令就能搭建系统安全防线。

什么是 ufw?

防火墙的作用就像系统的 "门卫",决定哪些网络流量可以进出你的电脑。而ufw是 Linux 系统中一款简化了的防火墙管理工具,它把复杂的iptables命令包装成了普通人能看懂的操作,哪怕你不懂网络原理,也能快速上手。

简单说:ufw 让设置防火墙变得像搭积木一样简单。

检查并安装 ufw

大多数 Linux 系统(比如 Ubuntu、Debian)默认已经预装了 ufw,我们可以先检查一下: ufw --version

如果显示版本信息(比如ufw 0.36),说明已经安装。如果提示 "命令未找到",可以用下面的命令安装:

  • Ubuntu/Debian 系统:

     sudo apt install ufw
    
  • CentOS/RHEL 系统(需要先启用 EPEL 源):

    sudo dnf install ufw
    

安装完成后,就可以开始使用了。

基础操作:给系统 "上锁"

  1. 启用防火墙 默认情况下,ufw 是关闭的(相当于大门敞开),我们需要先启用它: sudo ufw enable,执行后会提示 "防火墙在系统启动时自动启用",这意味着下次重启电脑后,防火墙依然会生效。

  2. 查看当前防火墙状态 想知道防火墙是否在工作,以及当前有哪些规则,可以用:sudo ufw status。刚启用时,输出可能是这样的:

    Status: active
    
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere
    

    这表示防火墙已激活(Status: active),并且允许 22 端口(SSH 服务)的流量进入。 如果想看到更详细的信息(包括端口对应的服务名称),可以加verbose参数: sudo ufw status verbose

  3. 关闭防火墙(谨慎使用) 如果遇到网络问题需要临时关闭防火墙,可以用:sudo ufw disable。但注意:日常使用中请保持防火墙开启,否则系统会暴露在网络风险中。

核心技能:添加防火墙规则

防火墙的核心是 "规则"—— 允许什么流量,禁止什么流量。ufw 的规则设置非常直观,记住两个关键词:allow(允许)和deny(禁止)。

允许特定端口的流量

网络服务通常通过 "端口" 通信,比如:

  • SSH 远程连接用 22 端口
  • 网页服务器用 80(HTTP)和 443(HTTPS)端口
  • FTP 文件传输用 21 端口

如果你的电脑需要提供这些服务,就需要允许对应的端口:

# 允许SSH(22端口)连接(默认可能已经允许)
sudo ufw allow 22/tcp

# 允许访问网页服务器(80和443端口)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 允许FTP服务(21端口)
sudo ufw allow 21/tcp

禁止不需要的端口

对于不常用的端口,应该禁止外部访问,比如关闭 3306 端口(MySQL 数据库,只在需要远程连接时开放):

sudo ufw deny 3306/tcp

按服务名称设置规则

ufw 还支持直接用服务名称(比如ssh、http)来设置规则,更直观:

# 允许SSH服务
sudo ufw allow ssh

# 允许HTTP和HTTPS服务
sudo ufw allow http
sudo ufw allow https

这和用端口号设置的效果完全一样,因为系统已经记录了服务与端口的对应关系(比如ssh对应 22 端口)。

允许特定 IP 地址访问

如果只想让某个 IP 地址(比如你的另一台电脑)连接到当前系统,可以这样设置:

# 允许IP为192.168.1.100的设备访问所有端口
sudo ufw allow from 192.168.1.100

# 只允许192.168.1.100访问22端口(SSH)
sudo ufw allow from 192.168.1.100 to any port 22

禁止来自某个 IP 的访问

如果发现某个 IP 地址有恶意访问,可以拉黑它:

sudo ufw deny from 10.0.0.5

管理规则:修改和删除

设置好的规则不是一成不变的,我们可以随时调整。

查看规则编号

删除规则前,需要先知道规则的编号:

sudo ufw status numbered

# 会显示类似这样的列表:
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

删除指定规则

比如要删除编号为 2 的规则(允许 80 端口):

sudo ufw delete 2

系统会提示确认,输入y即可。

重置所有规则

如果规则设置混乱,想从头开始,可以重置防火墙:

sudo ufw reset

这会清除所有已设置的规则,回到初始状态(默认关闭)。

实用技巧:让防火墙更好用

设置默认策略

默认策略是指当流量不匹配任何规则时,防火墙的处理方式。建议设置:

# 默认禁止所有 incoming(进入)流量
sudo ufw default deny incoming

# 默认允许所有 outgoing(出去)流量
sudo ufw default allow outgoing

这样既能阻止外部的恶意访问,又不影响自己正常上网。

允许 ping 请求

默认情况下,ufw 会禁止其他设备用ping命令检测你的电脑是否在线。如果需要允许:

sudo ufw allow icmp echo-request

限制 SSH 连接频率(防暴力破解)

可以用limit参数限制某个端口的连接频率,比如防止别人反复尝试 SSH 密码:

sudo ufw limit ssh/tcp

这会设置为:如果在 30 秒内有 6 次以上的连接尝试,就暂时阻止该 IP。

总结:安全操作三步骤

  • 启用防火墙:sudo ufw enable
  • 只开放需要的端口:比如sudo ufw allow ssh、sudo ufw allow http
  • 定期检查规则:sudo ufw status

ufw 的核心思想就是 "最小权限"—— 只允许必要的网络流量,其他一概禁止。掌握了这些基础操作,你的 Linux 系统就有了一道坚实的安全屏障。 如果后续需要添加新服务,只需记住ufw allow 端口号;遇到不需要的规则,用delete命令移除即可。