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

Google Cloud VM实例通过Selenium/curl访问网站遇阻求助

问题分析与解决方案

核心结论

Google Cloud VM的出站IP来自动态共享IP池,这确实是导致你被Uber Eats拦截的大概率原因。你配置的静态公网IP仅用于入站访问,VM的出站流量默认会走GCP的动态IP池,而这类云服务商IP段常被反爬系统标记为高风险,Uber Eats给出的"Javascript disabled"提示只是误导性的通用拦截反馈,并非实际问题。

排查步骤

  • 确认出站IP归属:在VM终端执行 curl ifconfig.me 获取当前出站IP,手动查询该IP的归属(通过本地IP数据库或WHOIS工具),验证是否属于Google Cloud的IP段。
  • 对比请求参数差异:在本地执行 curl -v "xxx.com",同时在VM执行相同命令,对比两者的请求头(User-Agent、Accept、Cookie等),确保除IP外其他参数完全一致,排除请求头差异导致的拦截。
  • 验证IP有效性:在VM上通过代理使用本地IP访问目标站点,若能正常响应,则直接确认是VM出站IP的问题。

解决方法

  • 配置Cloud NAT静态出站IP:在GCP控制台创建Cloud NAT网关,绑定你的静态公网IP,让VM的出站流量通过该静态IP发送,彻底脱离动态IP池。
  • 使用住宅类代理:选择住宅类型的代理服务(这类IP更接近普通用户的真实IP),在curl或Selenium中配置代理,绕过云IP的标记。
  • 优化请求行为:即使更换了IP,也要模拟正常用户的访问节奏——比如在Selenium中加入随机延迟、模拟滚动/点击操作,降低请求频率,避免触发反爬规则。
  • 更换VM实例:如果暂时不想配置Cloud NAT,可以删除当前VM并重新创建,获取新的出站IP(部分新IP可能未被Uber Eats标记)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:36:06