UFW 防火墙使用手册

1297 字
6 分钟
UFW 防火墙使用手册

UFW(Uncomplicated Firewall)是 Ubuntu/Debian 系统自带的简化版 iptables 防火墙管理工具,易用且功能强大。


目录#

  1. 基本状态查看
  2. 启用与禁用
  3. 端口管理
  4. IP 白名单与黑名单
  5. 默认策略
  6. 应用配置文件
  7. 接口级别的规则
  8. 日志管理
  9. 速率限制
  10. 规则优先级与插入
  11. 完整配置示例
  12. 常见问题排查

1. 基本状态查看#

Terminal window
# 查看防火墙状态(是否启用、已开放端口)
sudo ufw status
# 查看详细状态(含编号、动作、来源等)
sudo ufw status verbose
# 查看带编号的规则列表(方便删除指定规则)
sudo ufw status numbered
# 查看防火墙版本
ufw --version

2. 启用与禁用#

Terminal window
# 启用防火墙(首次启用会提示可能断开 SSH,确认已放行 22 端口再执行)
sudo ufw enable
# 禁用防火墙(完全关闭,所有规则失效但保留)
sudo ufw disable
# 重置防火墙(清空所有规则并禁用,谨慎使用)
sudo ufw reset
WARNING

sudo ufw reset清空所有规则并禁用防火墙,执行前请确认你还有其他方式可以连接服务器(如 VNC/控制台)。


3. 端口管理#

Terminal window
# 开放指定端口(TCP 默认)
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8080
# 开放指定端口并指定协议
sudo ufw allow 22/tcp
sudo ufw allow 53/udp
# 开放端口范围
sudo ufw allow 1000:2000/tcp
sudo ufw allow 1000:2000/udp
# 关闭(拒绝)指定端口
sudo ufw deny 3306
sudo ufw deny 6379/tcp
# 删除某条开放端口的规则
sudo ufw delete allow 8080
# 通过编号删除规则(先用 status numbered 查看编号)
sudo ufw status numbered
sudo ufw delete 3

4. IP 白名单与黑名单#

Terminal window
# 允许单个 IP 访问所有端口(全局白名单)
sudo ufw allow from 192.168.1.100
# 允许单个 IP 访问指定端口
sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw allow from 192.168.1.100 to any port 3306
# 允许 IP 段访问(CIDR 格式)
sudo ufw allow from 192.168.1.0/24
sudo ufw allow from 10.0.0.0/8 to any port 22
# 允许特定 IP 和端口组合
sudo ufw allow from 203.0.113.0/24 to any port 8080 proto tcp
# 拒绝单个 IP(黑名单)
sudo ufw deny from 192.168.1.200
# 拒绝 IP 段
sudo ufw deny from 10.10.10.0/24
# 删除某条 IP 规则
sudo ufw delete allow from 192.168.1.100

5. 默认策略#

Terminal window
# 默认拒绝所有传入连接(推荐,安全模式)
sudo ufw default deny incoming
# 默认允许所有传出连接(推荐)
sudo ufw default allow outgoing
# 默认允许所有传入(不推荐,除非在内网测试)
sudo ufw default allow incoming
# 默认拒绝所有传出(极端安全,可能断网)
sudo ufw default deny outgoing

6. 应用配置文件#

Terminal window
# 查看系统预置的应用配置列表
sudo ufw app list
# 查看某个应用具体会开放哪些端口
sudo ufw app info 'Nginx Full'
sudo ufw app info 'OpenSSH'
# 通过应用名放行(比记端口号更方便)
sudo ufw allow 'OpenSSH'
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Apache'
sudo ufw allow 'MySQL'
# 删除应用规则
sudo ufw delete allow 'Nginx Full'

7. 接口级别的规则#

Terminal window
# 仅允许从指定网卡进入的流量
sudo ufw allow in on eth0 to any port 80
sudo ufw allow in on eth0 to any port 443
# 拒绝某网卡的所有传入
sudo ufw deny in on eth1
# 查看网卡名称
ip addr

8. 日志管理#

Terminal window
# 启用日志(记录被拦截/放行的连接)
sudo ufw logging on
# 禁用日志
sudo ufw logging off
# 设置日志级别
sudo ufw logging low # 低:只记录被拦截的
sudo ufw logging medium # 中:记录被拦截和放行的
sudo ufw logging high # 高:记录所有,包括速率限制
sudo ufw logging full # 完整:记录所有包
# 查看 UFW 日志
sudo tail -f /var/log/ufw.log

9. 速率限制#

Terminal window
# 限制 SSH 连接速率(30 秒内超过 6 次连接会被临时封禁)
sudo ufw limit 22/tcp
sudo ufw limit ssh
# 限制其他端口速率
sudo ufw limit 8080/tcp

10. 规则优先级与插入#

Terminal window
# UFW 规则按添加顺序匹配,先匹配的先执行
# 建议顺序:白名单 > 正常端口 > 拒绝所有
# 在指定位置插入规则(例如在规则 #1 之前插入)
sudo ufw insert 1 allow from 192.168.1.100

11. 完整配置示例(Web 服务器场景)#

Terminal window
# 1. 重置并设置默认策略
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 2. 先放行 SSH(防止把自己锁在外面)
sudo ufw allow 22/tcp
# 或 sudo ufw allow 'OpenSSH'
# 3. 放行 Web 端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 4. 放行 1Panel 端口(如果需要)
sudo ufw allow 42544/tcp
# 5. 添加管理员 IP 白名单(可选)
sudo ufw allow from 203.0.113.50 to any port 22
# 6. 启用防火墙
sudo ufw enable
# 7. 查看最终规则
sudo ufw status verbose

12. 常见问题排查#

Terminal window
# 规则不生效?
sudo ufw reload
# 检查 iptables 底层规则(UFW 的底层)
sudo iptables -L -n -v | grep ufw
# 查看某端口是否被监听
sudo ss -tunlp | grep :80
# 测试端口连通性(从其他机器)
nc -zv 你的IP 80
CAUTION

如果启用 UFW 后 SSH 连不上,在服务器控制台/VNC 执行 sudo ufw disablesudo ufw allow 22/tcp 恢复。


文档版本: 2026-07-30


本地阅读版下载

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
UFW 防火墙使用手册
https://blog.qtfyu.top/posts/ufw-firewall-manual/
作者
倾听风雨
发布于
2026-07-30
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
倾听风雨
你好,我是倾听风雨,很高兴你能来到我的小家。
公告
欢迎来到我的博客!这是我的个人博客。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
最新动态
站点统计
文章
11
分类
5
标签
46
总字数
14,588
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.14.5
文章许可
CC BY-NC-SA 4.0
天气预报

文章目录