达耳闻 发表于 2026-9-7 09:10:00

ufw命令大全

安装:sudo apt install ufw
启用防火墙:sudo ufw enable
禁用防火墙:sudo ufw disable
重启防火墙:sudo ufw reload
重置所有规则:sudo ufw reset
查看状态:sudo ufw status
查看详细状态:sudo ufw status verbose
查看带编号规则:sudo ufw status numbered
允许 SSH 端口:(sudo ufw allow 22/tcp)

✅ 放行规则
# 按服务名放行
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# 按端口放行(默认同时开放 TCP 和 UDP)
sudo ufw allow 22
sudo ufw allow 80/tcp
sudo ufw allow 53/udp

# 放行端口范围
sudo ufw allow 9000:9002/tcp

# 放行特定 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 22 proto tcp

# 放行整个网段
sudo ufw allow from 192.168.1.0/24 to any port 80

❌ 拒绝规则# 拒绝端口(语法与 allow 一致)
sudo ufw deny 80
sudo ufw deny 21/tcp

# 拒绝特定 IP
sudo ufw deny from 192.168.1.100

# 拒绝特定 IP 访问指定端口
sudo ufw deny from 192.168.1.100 to any port 22

🗑️ 删除规则
# 按原规则前缀 delete 删除
sudo ufw delete allow http
sudo ufw delete deny 21/tcp

# 按编号删除(先用 status numbered 查看编号)
sudo ufw delete 3

🎯 高级策略
# 设置默认策略(推荐先拒绝入站,再逐条放行)
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允许已建立的连接(Web 服务器场景)
sudo ufw allow out on eth0 from any to any state ESTABLISHED

# 速率限制(防暴力破解,30秒内超过6次连接自动拒绝)
sudo ufw limit 22/tcp

# 按网络接口限制(仅允许内网接口的 SSH)
sudo ufw allow in on eth1 to any port 22

# 拒绝并通知发送方(reject 会返回拒绝信息,deny 直接丢弃)
sudo ufw reject 23/tcp

# 添加备注
sudo ufw allow 97/tcp comment 'open 97 port'

📝 日志与调试
# 开启/关闭日志
sudo ufw logging on
sudo ufw logging off

# 设置日志级别(off/low/medium/high/full)
sudo ufw logging medium

# 查看最近1小时被拒绝的记录
sudo journalctl -u ufw --since "1 hour ago" | grep DENY

# 查看底层完整规则
sudo ufw show raw

⚠️ 关键注意事项
‌规则顺序很重要‌:UFW 按编号从小到大匹配,命中即停止。精准的 deny 规则要放在通用 allow 规则前面,否则会被提前放行。
‌Docker 冲突‌:Docker 默认不遵守 UFW 规则,需修改 /etc/ufw/after.rules 或使用 ufw-docker 工具解决。
‌操作前先允许 SSH‌:修改防火墙规则时,先确保 SSH 端口已放行,否则可能把自己锁在服务器外。
‌规则不生效排查‌:先用 sudo ufw status numbered 查看规则顺序,再检查默认策略是否允许该流量。‌

页: [1]
查看完整版本: ufw命令大全