ufw(Uncomplicated Firewall)是 Ubuntu 和 Debian 系列系统中提供的一个 简单易用的防火墙前端工具,它封装了 iptables,让我们用更友好的方式进行防火墙管理。
🧱 一、UFW 基本概念
-
默认只管理
iptables的filter表(用于防火墙控制) -
通常只需要设置允许/拒绝端口或服务即可
-
UFW 不适合做复杂的 NAT 或端口映射任务(那仍然用
iptables)
🚀 二、安装和启用
sudo apt update
sudo apt install ufw # 安装
sudo ufw enable # 启用防火墙
sudo ufw status # 查看状态
sudo ufw disable # 禁用防火墙
📌 三、常用规则操作
✅ 1. 允许端口
允许一个端口但未指定协议(就是端口号后带/tcp之类的协议)就是允许所有的协议流量经过此端口,拒绝同理。
sudo ufw allow 22 # 允许 SSH
sudo ufw allow 80 # 允许 HTTP
sudo ufw allow 443 # 允许 HTTPS
✅ 2. 拒绝端口
sudo ufw deny 21 # 拒绝 FTP
✅ 3. 只允许某个 IP 访问
sudo ufw allow from 192.168.1.100
允许某 IP 访问某端口:
sudo ufw allow from 192.168.1.100 to any port 22
✅ 4. 删除规则
查看编号:
sudo ufw status numbered
然后删除某条规则(例如编号 2):
sudo ufw delete 2
✅ 5. 限速规则(防止暴力攻击)
sudo ufw limit 22/tcp
-
如果某个 IP 尝试多次连接 SSH,会被暂时封锁。
✅ 6. 开放端口范围 / 协议
sudo ufw allow 10000:20000/tcp
sudo ufw allow 60000:60010/udp
✅ 7. 指定网络接口开放规则
sudo ufw allow in on eth0 to any port 22 proto tcp
✅ 8. 拒绝所有流量(再逐个开放)
sudo ufw default deny incoming
sudo ufw default allow outgoing
然后再添加你要开放的端口:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
📖 四、查看状态与日志
查看规则状态:
sudo ufw status verbose
查看日志(默认写入 syslog):
sudo less /var/log/ufw.log
启用/禁用日志:
sudo ufw logging on
sudo ufw logging off
💾 五、开机自动启动
ufw 启动后默认就会随系统启动,不需要额外设置。如果你希望手动管理:
sudo systemctl enable ufw
sudo systemctl start ufw
🧪 六、实战例子:服务器只开放 SSH、HTTP、HTTPS
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22 # SSH
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
sudo ufw enable
🧹 七、重置防火墙
如果你设置错了很多规则,想一键恢复默认:
sudo ufw reset
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
