ufw
简介
Ubuntu 的默认防火墙配置工具是 ufw 。为简化 iptables 防火墙配置而开发, ufw 提供了一种用户友好的方法来创建基于 IPv4 或 IPv6 主机的防火墙。默认情况下,UFW 处于禁用状态
基本用法
开启/关闭
1 | sudo ufw enable |
检查状态
1 | sudo ufw status |
1 | sudo ufw status verbose |
输出:

可以看到,默认拒绝入站、转发,允许出站
有一些例外情况,可以用命令sudo ufw show raw查看
修改默认规则
拒绝入站:
1 | sudo ufw default deny incomin |
允许出站:
1 | sudo ufw default allow outgoing |
放行/禁止端口
放行53/tcp
1 | sudo ufw allow 53/tcp |
放行53/udp
1 | sudo ufw allow 53/udp |
放行53/tcp,53/udp
1 | sudo ufw allow 53 |
拒绝53/tcp
1 | sudo ufw deny 53/tcp |
拒绝53/udp
1 | sudo ufw deny 53/udp |
拒绝53/tcp,53/udp
1 | sudo ufw deny 53 |
放行1001/udp到1005/udp
1 | sudo ufw allow 1001:1005/udp |
删除规则
1 | sudo ufw allow 80/tcp |
通过服务名
ufw从/etc/services读取要查看获取服务列表
1 | # 查看服务列表 |
允许ssh:
1 | sudo ufw allow ssh # 等价于 sudo ufw allow 22/tcp |
编号(常用于删除操作)
查看带编号的规则:
1 | sudo ufw status numbered |
日志
启用日志:
1 | sudo ufw logging on |
禁用日志:
1 | sudo ufw logging off |
查看日志:
1 | sudo cat /var/log/ufw.log |
实时查看日志:
1 | sudo less /var/log/ufw.log |
日志记录等级:
- 开(low):记录按照定义的策略阻止或允许的所有数据包。
- 开(medium):同上,此外还包含不匹配策略的数据包。
- 开(high):记录所有速率限制和无速率限制。
- 开(完整):记录所有数据包,不限制速率。
进阶用法
网络接口
允许连接到特定的网络接口:
1 | ufw allow in on eth0 from 1.2.3.4 to any port 3306 |
IP规则
允许特定ip访问:
1 | sudo ufw allow from 1.2.3.4 |
允许某网段访问:
1 | sudo ufw allow from 192.168.1.0/24 |
允许特定端口、IP 地址和协议允许:
1 | sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp |
允许所有 IPv6 流量到 UDP 端口 8090:
1 | sudo ufw allow from ::/0 to any port 8090 proto udp |
拒绝ping(icmp)
编辑/etc/ufw/before.rules并删除以下行:
1 | # ok icmp codes |
或将 “ACCEPT” 改为 “DROP”
1 | # ok icmp codes |
导入/导出规则
导出:
1 | sudo ufw status numbered > ufw-rules.txt |
导入:
1 | sudo ufw status numbered < ufw-rules.txt |
解决 UFW 和 Docker 冲突的问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Meng's blog!


