Debian 防火墙故障排除步骤
一 快速定位思路
二 工具与命令速查
sudo ufw status verbose;需要编号规则时用 sudo ufw status numberedsudo iptables -L -n -v(加 -v 可看到包计数,便于判断是否命中)sudo systemctl status firewalld;规则概览 sudo firewall-cmd --list-allsudo ufw allow 22/tcp;iptables 示例 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTss -tulpen | grep <端口> 或 netstat -tulpen | grep <端口>nmap -sT -p <端口> 127.0.0.1;远程 nmap -p <端口> <服务器公网IP>sudo ufw logging on,日志路径 /var/log/ufw.logsudo tcpdump -ni any 'tcp port <端口>'(看是否有 SYN 到达本机)三 常见场景与处理
ss -lntp | grep :22sudo ufw allow 22/tcp 或 sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPTssh -v <服务器IP>;必要时在服务器上 sudo tcpdump -ni any 'tcp port 22'ss -lntp | grep :80 或 :443sudo ufw allow 80,443/tcp 或相应 iptables 规则nmap -p 80,443 <服务器IP>;若本机能访问而外部不能,优先检查云安全组与运营商/边界设备策略sudo ufw allow 22/tcp → sudo ufw enablesudo ufw status numbered 查看并按编号删除/调整冲突规则sudo ufw reload-p 80:80(宿主机端口:容器端口)ss -lntp | grep :80iptables 显式放行或调整策略顺序四 规则保存与持久化
sudo ufw reloadsudo ufw logging on,查看 /var/log/ufw.logsudo iptables-save > /etc/iptables/rules.v4/etc/network/if-pre-up.d/iptables#!/bin/sh
/sbin/iptables-restore < /etc/iptables/rules.v4
赋权:sudo chmod +x /etc/network/if-pre-up.d/iptablessudo iptables -F && sudo iptables -X && sudo iptables -t nat -F && sudo iptables -t nat -X(测试完再按上法恢复)五 最小化验证与回退方案
ss -lntp | grep <端口>;nmap -sT -p <端口> 127.0.0.1nmap -p <端口> <服务器IP>;若外部不通而本机通,多为外部策略(云安全组/防火墙/路由)问题sudo ufw disablesudo iptables -P INPUT ACCEPT && sudo iptables -P FORWARD ACCEPT && sudo iptables -P OUTPUT ACCEPT,并清空规则 sudo iptables -F