You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Firewall配置求助:Debian实例80端口规则设置后仍显示blocked

排查GCP Debian实例80端口仍被Blocked的问题

嘿,我来帮你捋捋这个问题——这种端口访问的坑我之前也踩过好几次,咱们一步步排查可能的操作失误点:

1. 先核对GCP防火墙规则的核心配置细节

别光看“配了80端口规则”,得确认几个关键项没搞错:

  • 规则方向:必须是入站(Ingress),要是选成出站(Egress)那完全没用。
  • 目标范围:要确保你的虚拟机实例被包含在内——要么选“所有实例”,要么给实例打了对应标签,规则的目标标签和实例标签匹配。很多人容易犯的错是规则设了标签,但自己的机器没加这个标签。
  • 端口与协议:要明确填tcp:80(或者端口范围80-80),别漏了协议,或者填成UDP了。
  • 来源IP:如果想让公网访问,得设成0.0.0.0/0(IPv4)和::/0(IPv6);要是只给自己测试,就填你本地的公网IP段。别不小心设成了某个特定IP,结果自己不在这个范围内。
  • 优先级:GCP防火墙规则是优先级数字越小越先执行,默认的default-deny-ingress优先级是1000,你的允许规则优先级得比它低(比如填65534,这是默认允许规则的优先级),不然会被拒绝规则覆盖。

2. 检查Debian实例内部的本地防火墙

GCP的外部防火墙放行后,机器本身的防火墙可能还在拦着:

  • 先看Debian默认的ufw状态:运行sudo ufw status,如果显示active,那得主动允许80端口:
    sudo ufw allow 80/tcp
    sudo ufw reload
    
  • 要是用的是iptables,可以用sudo iptables -L -n查看规则列表,确认有没有拒绝80端口的条目。如果有,添加允许规则:
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables-save > /etc/iptables/rules.v4  # 保存规则防止重启失效
    

3. 确认Web服务真的在监听80端口

防火墙配好了,但服务没启动或者没监听80端口也白搭:

  • 用ss命令检查监听状态:
    ss -tulpn | grep :80
    
    或者装net-tools后用netstat:
    sudo apt install net-tools
    netstat -tulpn | grep :80
    
    如果看不到对应的Web服务进程(比如Nginx/Apache),先启动服务:
    # 以Nginx为例
    sudo systemctl start nginx
    sudo systemctl enable nginx  # 设置开机自启
    
    也可以在本地测试:curl http://localhost:80,如果能返回内容,说明服务本身没问题。

4. 验证规则是否真的生效

  • 可以在GCP控制台的「VPC网络」->「防火墙」里,找到你创建的规则,点击「测试规则」,输入虚拟机的公网IP,看看规则能不能匹配上。
  • 从你本地机器直接测试:用telnet <你的公网IP> 80或者curl http://<你的公网IP>,如果本地能访问,但端口扫描工具显示blocked,可能是扫描工具的缓存或者自身限制,别太依赖第三方工具的结果,以实际访问为准。

内容的提问来源于stack exchange,提问作者Nicolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:47:40