是否可以在 Windows 服务器上通过 Puppeteer 连接到 NordVPN?

Wan*_*ter 3 vpn node.js puppeteer

我有一个在 Windows 服务器上运行的 Puppeteer 应用程序。该服务器的 IP 地址被它所抓取的某些网站阻止,因此需要一个新的 IP 地址。我有一个 NordVPN 帐户,但通过服务器故障被告知,如果我运行 NordVPN 应用程序,我将失去其静态 IP 的远程桌面访问权限 ( https://serverfault.com/questions/1060082/would-adding-nordvpn -to-a-windows-server-block-remote-access-at-its-ip/1060085),我相信 DNS 指向该 IP 的网站也将无法访问,所以我需要一个不同的解决方案。

我发现了一些使用 Puppeteer 连接到 VPN 的示例,但这些解决方案似乎使用 Linux 服务器(How to connect VPN using nodejs in ubuntu)。

小智 6

试试这个...它不依赖于任何其他模块...将用户/通行证更改为您帐户中的服务用户/通行证,并将 更改vpnServer为您想要使用的任何用户/通行证。

#!/usr/bin/env node

// Screengrab generator
// outputs a JSON object with a base64 encoded image of the screengrab
// eg;

const puppeteer = require('puppeteer');

let conf = new Object();

conf.url = "https://www.telegraph.co.uk";

// VPN
conf.vpnUser   = conf.vpnUSer   || 'USERNAME';
conf.vpnPass   = conf.vpnPass   || 'PASSWORD';
conf.vpnServer = conf.vpnServer || "https://uk1785.nordvpn.com:89";

(async() => {
    const browser = await puppeteer.launch({
        headless: true,
        args: [
            '--disable-dev-shm-usage',
            '--proxy-server='+conf.vpnServer
        ]
    });

    try {
        const page = await browser.newPage();

        await page.authenticate({
            username: conf.vpnUser,
            password: conf.vpnPass,
        });

        await page.goto(conf.url, { waitUntil: 'networkidle2' });
    } catch (error) {
        console.error(error);
    } finally {
        await browser.close();
    }
})();
Run Code Online (Sandbox Code Playgroud)