当然,UFW 的常用命令非常简洁。这里为你整理了一份清晰的操作指南,涵盖了你管理防火墙所需的核心命令。
📋 UFW 常用命令速查表
| 类别 | 命令 | 作用与说明 |
|---|---|---|
| 状态与信息 | sudo ufw status |
核心命令:查看防火墙是否激活及规则摘要。 |
sudo ufw status verbose |
推荐:查看详细状态、默认策略及所有规则列表。 | |
sudo ufw status numbered |
查看带编号的规则列表,便于后续删除特定规则。 | |
sudo ufw show added |
显示用户通过 ufw 命令添加的所有规则。 |
|
| 启用与禁用 | sudo ufw enable |
启用防火墙并设置开机自启。(关键操作) |
sudo ufw disable |
禁用防火墙(清除所有规则并关闭)。 | |
sudo ufw reset |
重置防火墙:禁用并删除所有用户定义的规则。 | |
| 规则管理(增) | sudo ufw allow 22/tcp |
开放TCP 22端口(例如SSH)。 |
sudo ufw allow 139,445/tcp |
同时开放多个TCP端口(Samba核心端口)。 | |
sudo ufw allow from 192.168.1.0/24 |
允许来自整个子网的所有连接(谨慎使用)。 | |
sudo ufw allow from 192.168.1.100 |
允许来自特定IP的所有连接。 | |
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp |
允许特定IP访问特定端口(最精细控制)。 | |
sudo ufw deny 3306/tcp |
明确拒绝某个端口的访问。 | |
| 规则管理(删) | sudo ufw delete allow 22/tcp |
按规则描述删除(需完全匹配添加时的命令)。 |
sudo ufw delete deny 3306/tcp |
||
sudo ufw delete 3 |
按规则编号删除(需先执行 status numbered 查看编号)。 |
|
| 默认策略 | sudo ufw default deny incoming |
推荐策略:默认拒绝所有入站连接。 |
sudo ufw default allow outgoing |
默认允许所有出站连接(通常保持此设置)。 |
🚀 针对你(开放Samba)的快速操作流程
结合你的目标,最简洁的操作顺序如下:
# 1. 设置默认策略(安全基线)
sudo ufw default deny incoming
sudo ufw default allow outgoing# 2. 【务必先做】开放SSH端口,防止被锁
sudo ufw allow 22/tcp# 3. 开放Samba所需端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp# 4. 启用防火墙
sudo ufw enable# 5. 验证结果
sudo ufw status verbose
⚠️ 重要注意事项
- SSH警告:在物理服务器或虚拟机上,务必在
enable前确保已开放SSH端口(如22),否则当前连接可能会中断且无法重新连接。 - 规则持久化:通过
ufw命令添加的规则在系统重启后自动生效,无需额外保存。 - 与Docker的关系:UFW默认不管理由Docker直接映射到主机的端口(如
-p 8080:80)。如需限制,需要更复杂的配置(即之前修改after.rules的目的)。 - 规则顺序:UFW的规则没有优先级顺序,它是状态化的防火墙,规则匹配即生效。
🔧 高级与日志管理
| 命令 | 作用 |
|---|---|
sudo ufw logging on |
开启防火墙日志(记录到 /var/log/ufw.log)。 |
sudo ufw logging off |
关闭防火墙日志。 |
sudo ufw app list |
列出所有预定义的应用程序配置文件(如 OpenSSH、Nginx Full)。 |
sudo ufw allow 'Nginx HTTP' |
通过应用配置文件名称来开放规则(更易管理)。 |
掌握以上命令,你就能轻松应对绝大部分防火墙管理需求了。如果你在执行特定命令时遇到问题,可以随时告诉我具体的命令和输出。