在 Linux 下“测试防火墙规则”通常分几种情况:规则是否生效、流量是否被允许/拒绝、以及配置是否正确。下面按常见场景给你一套实用方法。
不同发行版默认不同:
# 查看当前防火墙类型
sudo firewall-cmd --state # firewalld(CentOS/RHEL 7+)
sudo ufw status # UFW(Ubuntu 常见)
sudo iptables -L -n -v # iptables(传统)
假设你想测试 80 端口是否开放:
# 从其他机器
telnet <服务器IP> 80
# 或
nc -vz <服务器IP> 80
✅ 能连上 → 规则允许
❌ 超时/拒绝 → 被防火墙拦了
ss -lntp | grep 80
确认服务在监听,否则不是防火墙问题。
sudo iptables -L -n -v
看 pkts 列是否增长。
sudo iptables -L INPUT -v -n --line-numbers
sudo tcpdump -i eth0 port 80
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
测试完删掉:
sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
# 临时开放
sudo firewall-cmd --add-port=8080/tcp
# 测试
nc -vz IP 8080
# 恢复
sudo firewall-cmd --remove-port=8080/tcp
sudo ufw allow 8080/tcp
# 测试
sudo ufw status
如果你愿意,可以告诉我:
我可以直接给你精确测试命令。