Apify Discord Mirror

Updated 5 months ago

ERR_TUNNEL_CONNECTION_FAILED when running puppeteer with proxy chain package

At a glance

The community member is running a Puppeteer script on a Linux VPS and encountering an error: "Error: net::ERR_TUNNEL_CONNECTION_FAILED". They have tried using the proxy-chain package to anonymize the proxy URL, as well as incorporating fingerprint packages, but the issue persists.

One community member suggests that the issue may be with the Apify proxy server, as they were able to execute the code successfully by using a different proxy server. Another community member recommends using the PuppeteerCrawler with the Apify proxy, providing a link to an example project.

There is no explicitly marked answer, but the community members have provided suggestions and insights that may help resolve the issue.

Useful resources
I running this code on Linux VPS:
Plain Text
const puppeteer = require('puppeteer');
const proxyChain = require('proxy-chain');

(async () => {
    const oldProxyUrl = 'http://auto:apify_proxy_XXXXXXX@proxy.apify.com:8000';
    const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);

    console.log(newProxyUrl);

    const browser = await puppeteer.launch({
        args: [`--proxy-server=${newProxyUrl}`],
    });

    // Do your magic here...
    const page = await browser.newPage();
    await page.goto('https://www.example.com');
})();
But getting this error: Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://www.google.com/
A
L
4 comments
I also tried with fingerprint packages as well:
Plain Text
const proxyChain = require('proxy-chain');
const puppeteer = require('puppeteer');
const { FingerprintGenerator } = require('fingerprint-generator');
const { FingerprintInjector } = require('fingerprint-injector');

(async () => {

    const oldProxyUrl = 'http://auto:apify_proxy_XXXXX@proxy.apify.com:8000';
    const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);

    const fingerprintGenerator = new FingerprintGenerator();

    const browserFingerprintWithHeaders = fingerprintGenerator.getFingerprint({
        devices: ['desktop'],
        browsers: ['chrome'],
    });

    const fingerprintInjector = new FingerprintInjector();

    const browser = await puppeteer.launch({
        args: [`--proxy-server=${newProxyUrl}`, '--no-sandbox', '--disable-setuid-sandbox'],
        headless: true,
        ignoreHTTPSErrors: true,
    });

    const page = await browser.newPage();

    await fingerprintInjector.attachFingerprintToPuppeteer(page, browserFingerprintWithHeaders);

    // ... your code using `page` here

    const url = "https://www.google.com";
    await page.goto(url);

    await page.screenshot({
        path: `newproxy.jpg`
    });

    await browser.close();
})();

but still getting same error: Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://google.com not sure if apify proxy servers are not working or I am missing anything in code? Any suggestions?
I changed apify proxy server to different proxy server and I was able to execute above code. Looks like there is some issue with Apify proxy
One follow up question if we are using residential proxies or proxy server with dynamic IPs do we still need to use createTunnnel() closeTunnel() from proxychain package?
Add a reply
Sign up and join the conversation on Discord