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

Puppeteer代码本地正常,AWS EC2实例报导航超时错误

问题排查:EC2上Puppeteer截图超时的原因与解决方法

可能的原因及对应解决方法

1. EC2实例缺少Puppeteer运行的系统依赖

Puppeteer依赖Chrome浏览器的底层库,本地系统通常自带这些依赖,但EC2的服务器系统(如Amazon Linux 2、Ubuntu)默认没有安装,这会导致Chrome无法正常启动,最终引发导航超时。

解决方法:
根据你的EC2系统类型执行以下命令安装依赖:

  • 对于Amazon Linux 2:
sudo yum install -y alsa-lib.x86_64 atk.x86_64 cups-libs.x86_64 gtk3.x86_64 ipa-gothic-fonts libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXrandr.x86_64 libXScrnSaver.x86_64 libXtst.x86_64 pango.x86_64 xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
  • 对于Ubuntu/Debian:
sudo apt-get update
sudo apt-get install -y libnss3-dev libatk-bridge2.0-dev libcups2-dev libxkbcommon-dev libgtk-3-dev libasound2-dev

2. Puppeteer启动参数未适配无头服务器环境

本地运行有桌面环境支持浏览器渲染,但EC2是无头服务器,默认启动参数无法正常初始化Chrome进程,导致页面导航停滞超时。

解决方法:
修改Puppeteer启动配置,添加适配无头环境的参数:

const browser = await puppeteer.launch({
  headless: 'new', // 使用新版无头模式,兼容性更接近真实浏览器
  args: [
    '--no-sandbox', // 无root权限时必需,禁用沙箱机制
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage', // 解决EC2共享内存不足的问题
    '--disable-gpu', // 无头环境无需GPU加速
    '--window-size=1920,1080' // 设置窗口尺寸,确保页面渲染完整
  ]
});

3. 目标网站的反爬机制拦截EC2请求

目标网站可能检测到EC2的IP段、无头浏览器特征,拒绝响应或故意延迟返回,最终触发导航超时。

解决方法:

  • 模拟真实浏览器的User-Agent:
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
  • 延长导航超时时间并调整等待策略:
await page.goto('https://xxxxxxx.xxx.xxx.xx/xxxxx-xxxxx', {
  timeout: 60000, // 超时时间延长至60秒
  waitUntil: 'networkidle2' // 等待网络请求基本完成后再继续执行
});
  • 验证IP是否被拦截:在EC2终端执行curl -v https://xxxxxxx.xxx.xxx.xx/xxxxx-xxxxx,如果curl也超时,说明IP被目标网站拦截,可尝试重启EC2实例更换公网IP,或使用代理IP访问。

4. 网络DNS解析异常

如果目标地址是域名而非IP,EC2实例可能无法正确解析域名,导致导航请求无法送达目标服务器。

解决方法:
在EC2终端执行nslookup your-target-domain.com检查解析结果,若解析失败,可手动将EC2的DNS服务器改为公共DNS(如8.8.8.8)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:35:11