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

GCP VM上Nginx服务Telnet port 80正常但跨多网络HTTP访问被拒是什么原因?

GCP VM Nginx 80端口浏览器访问拒绝排查方案

1. 校验Nginx服务监听配置

  • 登录VM后执行ss -tulpn | grep :80,确认80端口的监听进程为Nginx,且监听地址为0.0.0.0:80/:::80,而非仅127.0.0.1:80(仅监听本地环回的话仅VM本地可访问,外部访问会被拒绝)
  • 检查Nginx主配置/etc/nginx/nginx.conf或站点配置(默认存于/etc/nginx/sites-available/目录)的listen字段,确认未绑定特定私有IP,也未配置allow/deny规则限制80端口的访问IP段
  • 配置修改后先执行nginx -t校验语法合法性,再执行systemctl reload nginx使配置生效

2. 检查GCP平台网络规则

  • 确认VPC入站防火墙规则存在允许0.0.0.0/0(所有公网IP)访问TCP 80端口的规则,且规则绑定的目标标签与当前VM的网络标签匹配
  • 确认VM分配的是静态公网IP,避免IP动态变更导致浏览器访问的是过期地址
  • 确认VM未启用GCP Identity-Aware Proxy(IAP)强制访问控制,如有启用需调整规则开放80端口的公网访问权限

3. 排查访问行为差异

你提到的Telnet连通需先确认操作环境:

  • 若为仅VM本地执行telnet 127.0.0.1 80可通,按前两步排查监听配置与防火墙规则即可
  • 若为外部公网环境执行telnet <VM公网IP> 80可通但浏览器访问拒绝,重点检查以下项:
    • Nginx是否配置了强制HTTPS跳转,自动将80端口请求跳转到443端口,但443端口未开放监听或防火墙未放行,浏览器跳转后访问被拒绝
    • 浏览器是否默认强制使用HTTPS协议访问(部分浏览器对特殊后缀域名会强制HTTPS),可手动在地址栏输入http://<VM公网IP>(不能省略http前缀)测试
    • 检查VM本地是否开启了ufw、firewalld等防火墙,执行iptables -L -n确认无规则拦截公网IP对80端口的访问

4. 快速定位验证

  • VM本地执行curl -v http://127.0.0.1,确认Nginx可正常返回index.html内容
  • 公网环境执行curl -v http://<VM公网IP>,对比返回结果:若可正常返回内容则为浏览器侧配置问题,若返回connection refused则为网络或服务监听问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:24:04