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

部署于GCP VM的Web应用部分网络环境下无法访问如何排查?

第一步:先复现+验证用户侧故障现象

  • 让故障用户分别访问http://你的域名:8080和http://你的域名:8000(HTTPS场景替换对应协议即可),测试前端静态资源是否能正常加载、后端健康检查接口(可提前在Django中配置简单的/test校验接口)是否能正常返回,分别记录两个端口的连通性结果
  • 让故障用户执行telnet 你的域名 8000、telnet 你的域名 8080,以及traceroute 你的域名(Windows环境执行tracert 你的域名),确认故障属于端口被中间网络拦截,还是路由不可达
  • 统计故障用户的网络共性,比如是否是同一运营商、是否处于企业内网/校园网环境,缩小故障范围

第二步:验证GCP侧配置是否存在遗漏

  • 检查VPC防火墙规则的优先级,确认放行8000、8080端口的规则优先级高于拦截其他端口的规则,避免高优先级拦截规则覆盖放行规则
  • 检查GCP VM的实例级防火墙标签,确认你配置的VPC防火墙规则已经关联到当前VM实例,不存在漏打标签的情况
  • 开启并查看GCP VPC的Flow Logs,筛选故障用户IP的访问日志,确认请求是否到达VPC层面:如果VPC层面没有收到请求,说明故障出现在公网传输环节;如果VPC收到请求但被丢弃,直接根据日志提示的丢弃原因修正防火墙配置
  • 登录VM执行iptables -L -n查看内部iptables规则,确认VM系统层面没有额外的端口拦截规则,部分官方系统镜像会默认开启内部防火墙拦截外部非标准端口请求

第三步:验证应用层配置兼容性

  • 检查React代码中配置的后端请求地址,确认没有写死私网IP/仅本地可解析的域名,避免其他网络下无法解析后端地址
  • 检查Nginx配置的CORS规则,确认没有对特定来源IP/UA的拦截逻辑,同时CORS响应头配置完整,不会导致部分网络下浏览器触发跨域拦截
  • 如果开启了HTTPS,检查SSL证书是否为公网信任机构签发、是否配置了完整的证书链,部分小众运营商会拦截证书不完整的HTTPS请求
  • 检查Django的ALLOWED_HOSTS配置,确认已经包含你绑定的公网域名,没有仅配置本地测试域名/IP

第四步:中间链路问题排查

  • 如果你配置了CDN、WAF等前置服务,排查相关规则是否拦截了特定地区/特定运营商的IP请求
  • 用多地区在线端口检测工具测试8000、8080端口的公网连通性,确认是否存在部分地区运营商封禁非标准HTTP端口的情况:8000、8080属于常用开发端口,部分运营商会默认封禁这类端口的公网入站请求
  • 如果确认是非标准端口被拦截,建议调整部署架构:用Nginx统一监听80/443端口,通过路径区分前后端服务,比如/api路径转发到8000端口的Django服务,根路径指向前端静态资源,避免使用非标准端口对外提供服务

内容的提问来源于stack exchange,提问作者Mohamad El Baba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:48:04