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

如何在Puppeteer 1.11.0请求中指定服务器多IP接口?(Node v10.15.0)

解决Puppeteer 1.11.0绑定指定服务器IP的方案

嘿,针对你遇到的这个问题——服务器有多个IP但不知道怎么让Puppeteer指定使用,刚好我之前在类似的环境(Node.js v10.15.0 + Puppeteer 1.11.0)里折腾过,给你两个靠谱的方案:

方案1:启动Chrome时用--host-resolver-rules强制解析

这个方法是通过Chrome启动参数直接修改域名解析规则,把所有请求都指向你指定的服务器IP,适合全局固定一个IP的场景。

代码示例:

const puppeteer = require('puppeteer');

(async () => {
  // 替换成你要使用的目标IP
  const targetIp = '192.168.1.100';
  const browser = await puppeteer.launch({
    args: [
      `--host-resolver-rules="MAP * ${targetIp},EXCLUDE localhost"`
    ]
  });
  
  const page = await browser.newPage();
  // 访问一个能显示当前IP的网站验证
  await page.goto('https://icanhazip.com');
  
  const currentIp = await page.$eval('body', el => el.textContent.trim());
  console.log('当前请求使用的IP:', currentIp);
  
  await browser.close();
})();

说明:MAP * ${targetIp}会把所有非localhost的请求解析到指定IP,EXCLUDE localhost是避免本地服务被影响。

方案2:本地代理绑定指定IP(灵活切换)

如果需要动态切换不同的IP,这个方法更合适——在本地搭建一个简单的HTTP代理,绑定到目标IP,再让Puppeteer通过这个代理发起请求。

首先安装兼容Node.js v10的代理包:

npm install http-proxy@1.17.0

然后编写代码:

const puppeteer = require('puppeteer');
const httpProxy = require('http-proxy');

(async () => {
  // 要使用的服务器IP
  const targetIp = '192.168.1.100';
  const proxyPort = 8080;

  // 创建本地代理,绑定到指定IP
  const proxy = httpProxy.createProxyServer({
    bind: targetIp
  }).listen(proxyPort);

  // 启动Puppeteer并配置代理
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=http://localhost:${proxyPort}`
    ]
  });
  
  const page = await browser.newPage();
  await page.goto('https://icanhazip.com');
  
  const currentIp = await page.$eval('body', el => el.textContent.trim());
  console.log('当前请求使用的IP:', currentIp);
  
  await browser.close();
  proxy.close(); // 关闭代理
})();

说明:每个代理实例可以绑定一个不同的IP,需要切换时启动对应代理即可,灵活性更高。

注意事项

  • 你的Puppeteer版本比较老,一些新版本的网络拦截API(比如page.setRequestInterception结合修改请求源IP)在这个版本里支持有限,所以上面的方案是最适配的。
  • 确保目标IP已经在服务器上正确配置,并且可以正常访问外部网络,否则请求会超时或失败。
  • 测试时一定要用能显示当前请求IP的网站验证,避免白忙活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:20:12