繁体   English   中英

Node.js 出站 IP - 更改地址

[英]Node.js outbound IP - change address

操作系统是 Linux Debian 9. 我的网络接口连接的 IPv4 很少,也可以有一些 IPv6。

网络接口设置文件在末尾添加 /64 组 IPv6 地址之一。

如何运行 node.js 以使用一个选择的 IPv4 作为 IPv4 地址列表中的出站连接? 现在它总是使用最后添加的 IP 接口。

我不想在这些 IP 上设置代理,因为它们用于网络服务器和其他服务。

我准备了一些代码来说明问题所在:

var ip = require('ip');
console.log(ip.address());

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://api.myip.com/');
  let bodyHTML = await page.evaluate(() => document.body.innerHTML);
  console.log(bodyHTML);
  await browser.close();
})();

So as you can see, I've listed here my local IP address and in advance I have opened website https://api.myip.com/ with puppeteer (thanks @crazyluki) to show its outbound IP in json.

所以结果是:

seo@serv:~/goo$ node ip.js 
188.6.6.1
{"ip":"1001:a1d0:2:9aa1::","country":"France","cc":"FR"}
user@serv:~/goo$ 

添加了新的 IPv6:

user@serv:~/goo$ sudo /sbin/ifconfig eno1 inet6 add 1001:a1d0:2:9aa1::1/64

接着:

user@serv:~/goo$ node ip.js 
188.6.6.1
{"ip":"1001:a1d0:2:9aa1::1","country":"France","cc":"FR"}
user@serv:~/goo$ 

所以我们可以看到 IP 地址从 1001:a1d0:2:9aa1:: 变为 1001:a1d0:2:9aa1::1

如何控制 puppeteer 中的出站 IP 不使用代理作为我的本地 IPv4 地址?

如果我使用 Lynx 访问https://api.myip.com/ ,它也会像木偶一样显示 IP。

好的,我已经配置了 squid。 似乎没有其他方法可以达到预期的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM