在 Debian 上测试防火墙规则,通常取决于你使用的是哪种防火墙管理工具。Debian 常见的防火墙方案有:
下面按常见场景说明如何测试防火墙规则是否生效。
# 查看是否使用 ufw
sudo ufw status
# 查看 iptables 规则
sudo iptables -L -n -v
# 查看 nftables 规则
sudo nft list ruleset
# 查看 firewalld
sudo firewall-cmd --state
sudo ufw status verbose
例如在服务器上开放了 22(SSH)或 80(HTTP):
# 从另一台机器测试
telnet 服务器IP 22
# 或
nc -vz 服务器IP 22
或者用 curl:
curl http://服务器IP
ss -tulnp
确认服务在监听,再看 ufw 是否允许。
sudo iptables -L -n -v
# 或
sudo nft list ruleset
例如你有一条规则:
iptables -A INPUT -p tcp --dport 80 -j DROP
测试:
curl http://服务器IP
# 或
nc -vz 服务器IP 80
如果连接被拒绝或超时,说明规则可能生效。
防火墙是否生效,必须以“外部访问”为准:
# 从另一台机器
ping 服务器IP
telnet 服务器IP 端口
nmap 服务器IP
例如:
nmap -p 22,80,443 服务器IP
sudo ufw logging on
sudo tail -f /var/log/ufw.log
iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROP: "
然后查看:
dmesg | grep IPTABLES
✅ 开放端口前先测试默认策略
✅ 改规则后立刻从外部测试
✅ 不要只在 localhost 测试
✅ SSH 规则改前留一条备用会话
如果你愿意,可以告诉我:
我可以给你更精确的测试命令。