Якщо ви вже стикалися з тим, що Puppeteer-скрипт блокується після 20-30 запитів, причина майже завжди одна: статичний IP-адрес, який Google, Amazon або Instagram миттєво ідентифікують як бота. 4G proxy Puppeteer setup вирішує цю проблему на рівні мережі, бо трафік іде через реальний LTE-модем і виглядає як звичайний смартфон. У цьому гайді ви дізнаєтесь:
- Як підключити мобільний 4G проксі до Puppeteer через HTTP і SOCKS5
- Як налаштувати автоматичну ротацію IP через API
- Як перевірити, що проксі дійсно працює і не «зливає» ваш реальний IP
- Типові помилки та способи їх виправлення
Увесь код нижче перевірений на Node.js 20+ і Puppeteer 22+.

Чому саме 4G мобільний проксі, а не датацентровий
Датацентрові проксі дешеві, але їх підмережі давно внесені до чорних списків Cloudflare, Google і більшості e-commerce платформ. Навіть «residential» проксі часто базуються на скомпрометованих домашніх роутерах, і сайти все частіше їх розпізнають.
Мобільний 4G проксі — інша справа. Трафік іде через фізичний LTE-модем з реальною SIM-картою польського оператора. Сайт бачить IP з мобільної підмережі, яка знаходиться за CGNAT, тобто один IP-адрес ділять тисячі реальних користувачів. Заблокувати такий IP означає відрізати від сайту цілий район міста.
Key takeaway: Мобільні IP на базі CGNAT мають рівень виявлення ботів, що наближається до нуля, бо для сайту ви виглядаєте як звичайний користувач iPhone чи Android-смартфона.
- Реальні LTE-модеми в Польщі, не віртуальні машини
- Підтримка HTTP, SOCKS5 та OpenVPN в одному порту
- Ротація IP за 2 секунди через API або панель керування
- Безлімітний трафік: плоска плата без GB-лічильника
- Ідеально підходить для Puppeteer, Playwright, Selenium і curl
Якщо ваш проект пов'язаний зі скрапінгом Google SERP, моніторингом цін на Allegro або автоматизацією акаунтів Instagram, мобільний проксі — єдиний варіант, який витримає навантаження без постійних капч і банів.
Що потрібно перед початком налаштування
Перш ніж писати перший рядок коду, переконайтесь, що у вас є все необхідне. Поспішний старт без підготовки призводить до годин відлагодження.
Технічні вимоги
- Node.js версії 18 або вище (рекомендовано 20 LTS)
- Puppeteer:
npm install puppeteerабоnpm install puppeteer-core - Для SOCKS5: бібліотека
socks-proxy-agent - Активний порт 4G проксі від Proxy Poland з логіном і паролем
Дані проксі, які ви отримаєте
Після реєстрації та вибору тарифу в панелі керування Proxy Poland ви побачите чотири параметри:
- Host: наприклад,
pl-modem-01.proxypoland.com - Port: наприклад,
8080для HTTP або1080для SOCKS5 - Username: ваш логін
- Password: ваш пароль
Збережіть ці дані в .env-файл і ніколи не хардкодьте їх напряму в скрипт. Використовуйте пакет dotenv для зчитування змінних оточення.
Key takeaway: Зберігати чутливі дані проксі у змінних оточення — стандартна практика безпеки, яка також спрощує ротацію облікових даних без зміни коду.
Підключення HTTP проксі до Puppeteer
HTTP-проксі — найпростіший спосіб розпочати. Puppeteer підтримує його нативно через аргумент запуску браузера. Ніяких додаткових бібліотек не потрібно.
Ось мінімальний робочий приклад:
- Створіть файл
scraper.js - Додайте наступний код:
const puppeteer = require('puppeteer');
require('dotenv').config();
(async () => {
const browser = await puppeteer.launch({
args: [
`--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
]
});
const page = await browser.newPage();
await page.authenticate({
username: process.env.PROXY_USER,
password: process.env.PROXY_PASS
});
await page.goto('https://whatismyip.com');
const content = await page.content();
console.log(content);
await browser.close();
})();
Зверніть увагу на метод page.authenticate(). Він потрібен, бо Puppeteer за замовчуванням не передає Basic Auth для проксі автоматично. Якщо пропустити цей крок, ви отримаєте помилку 407 Proxy Authentication Required.
- Запускайте браузер у headless-режимі на сервері:
headless: true - Додайте
--no-sandboxякщо запускаєте в Docker або Linux без root-ізоляції - Встановіть таймаут навігації:
await page.setDefaultNavigationTimeout(30000)
Підключення SOCKS5 проксі до Puppeteer
SOCKS5 працює на нижчому рівні мережевого стека порівняно з HTTP. Він передає весь трафік, включно з UDP, і не додає заголовків, які можуть видати проксі. Для задач скрапінгу це дає кращу сумісність з сайтами, що перевіряють TLS fingerprint.
Встановіть залежність:
npm install socks-proxy-agent
Потім змініть код запуску:
const puppeteer = require('puppeteer');
require('dotenv').config();
(async () => {
const proxyUrl = `socks5://${process.env.PROXY_USER}:${process.env.PROXY_PASS}@${process.env.PROXY_HOST}:${process.env.PROXY_SOCKS_PORT}`;
const browser = await puppeteer.launch({
args: [`--proxy-server=${proxyUrl}`]
});
const page = await browser.newPage();
await page.goto('https://proxypoland.com/uk/tools/what-is-my-ip');
await browser.close();
})();
З SOCKS5 аутентифікація передається прямо в URL, тому page.authenticate() не потрібен. Але переконайтесь, що ваш проксі-порт дійсно слухає SOCKS5, а не тільки HTTP. В панелі Proxy Poland це вказано окремо для кожного порту.
Key takeaway: Використовуйте SOCKS5 коли скрапите сайти з агресивною перевіркою TLS або коли HTTP-проксі дає помилки SSL-рукостискання.

Автоматична ротація IP через API Proxy Poland
Статичний IP навіть з мобільної підмережі може викликати підозру, якщо ваш скрипт робить 500 запитів з одного адреса за годину. Ротація IP вирішує це: кожні N запитів ви отримуєте новий IP від того ж LTE-модема.
Ручна ротація через API
Proxy Poland надає простий REST API для зміни IP. Виклик займає менше 2 секунд:
const axios = require('axios');
async function rotateIp() {
const response = await axios.get(
`https://api.proxypoland.com/rotate?port=${process.env.PROXY_PORT}&key=${process.env.API_KEY}`
);
console.log('New IP assigned:', response.data.ip);
}
Інтеграція ротації в цикл скрапінгу
Практичний підхід: ротуйте IP кожні 50-100 запитів або після отримання статусу 429:
- Лічіть кількість успішних запитів в змінній
requestCount - Якщо
requestCount % 50 === 0, викликайтеrotateIp() - Після ротації чекайте 3 секунди, щоб новий IP активувався
- При отриманні 429 або капчі — негайна ротація без очікування ліміту
В нашому тестуванні такий підхід дозволяє скрапити Google SERP або сторінки Allegro без жодного бану протягом 8+ годин безперервної роботи. Наш моdem-farm виконує понад 50,000 ротацій IP на добу без деградації продуктивності.
Також доступна автоматична ротація через панель керування: встановіть інтервал від 5 хвилин до 24 годин, і IP мінятиметься без будь-якого коду з вашого боку.
Перевірка проксі та захист від витоку IP
Після налаштування обов'язково перевірте, що трафік дійсно йде через проксі, а не напряму. Це критично, бо Puppeteer у деяких конфігураціях може обходити проксі для певних запитів.
Базова перевірка IP
Відкрийте наш інструмент перевірки IP через Puppeteer і порівняйте показаний IP з вашим реальним. Якщо відрізняються, проксі працює.
Перевірка витоку DNS
DNS-запити можуть «зливати» ваш реальний IP навіть якщо HTTP-трафік іде через проксі. Скористайтесь тестом витоку DNS, щоб переконатись, що DNS-запити також маршрутизуються через проксі.
- При HTTP-проксі DNS зазвичай резолвиться на стороні проксі-сервера, витоку немає
- При SOCKS5 без додаткових налаштувань DNS може резолвитись локально
- Додайте прапор
--proxy-dnsдо аргументів Chromium для примусового DNS через проксі
Перевірка HTTP-заголовків
Деякі проксі додають заголовки X-Forwarded-For або Via, які видають їх присутність. Перевірте аналізатор HTTP-заголовків, щоб побачити, що саме отримує сервер від вашого браузера. Проксі Proxy Poland не додають жодних розкривальних заголовків.
Також перевірте швидкість з'єднання через тест швидкості проксі. Хороший 4G мобільний проксі в Польщі дає латентність 40-80ms і пропускну здатність 20-50 Mbps, що цілком достатньо для будь-якого скрапінгу.
Типові помилки та як їх виправити
Навіть досвідчені розробники натрапляють на одні й ті ж підводні камені при першому налаштуванні 4G proxy Puppeteer setup. Ось найпоширеніші з них.
Помилка 407: Proxy Authentication Required
Ви забули викликати page.authenticate() після відкриття нової сторінки. Важливо: метод потрібно викликати для кожної нової сторінки, не тільки один раз для браузера.
Помилка ERR_TUNNEL_CONNECTION_FAILED
Puppeteer не може підключитись до проксі-хоста. Перевірте:
- Чи правильний хост і порт у ваших змінних оточення
- Чи не заблокований порт вашим файрволом або хмарним провайдером
- Чи активний ваш порт у панелі Proxy Poland (статус «Online»)
Капча після кожного запиту
Швидше за все, ваш User-Agent видає Headless Chrome. Встановіть реалістичний User-Agent:
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36');
Повільна навігація або таймаути
Це може бути нестабільний LTE-сигнал. Збільште таймаут до 60 секунд і додайте логіку повторних спроб. В нашому досвіді, стабільність польських LTE-мереж дуже висока, але пікові навантаження в мережі оператора трапляються.
Key takeaway: Завжди обгортайте навігацію в try-catch з логіком retry і ротацією IP при помилці, а не просто завершуйте скрипт.

Часті запитання
Чи працює 4G проксі з Puppeteer на Linux-сервері без GUI?
Так. Puppeteer за замовчуванням запускає Chromium у headless-режимі, який не потребує графічного інтерфейсу. На Ubuntu/Debian встановіть необхідні залежності командою npx puppeteer browsers install chrome і додайте прапор --no-sandbox до аргументів запуску.
Яка різниця між HTTP і SOCKS5 проксі в Puppeteer?
HTTP-проксі простіший у налаштуванні і добре підходить для більшості задач скрапінгу. SOCKS5 працює на нижчому рівні, не додає HTTP-заголовків і краще підходить для сайтів з агресивним захистом або для задач, де важлива повна анонімність запиту. Обидва протоколи підтримуються портами Proxy Poland.
Як часто потрібно ротувати IP при скрапінгу Google?
В нашому тестуванні Google починає показувати капчу приблизно після 30-50 запитів з одного IP за 10 хвилин. Оптимальна стратегія: ротація кожні 20-30 запитів плюс випадкова затримка 2-5 секунд між запитами. З мобільним 4G IP цей ліміт значно вищий, бо такий трафік виглядає органічно.
Чи можна використовувати один порт Proxy Poland для кількох паралельних Puppeteer-інстанцій?
Технічно можна, але один порт має один IP в конкретний момент часу. Для паралельної роботи з різними IP замовте кілька портів або скористайтесь автоматичною ротацією. Кожен порт в нашій інфраструктурі прив'язаний до окремого фізичного LTE-модема.
Висновок
Налаштування 4G proxy Puppeteer setup займає не більше 15 хвилин, якщо у вас є правильні дані проксі і розуміння трьох ключових моментів. По-перше, HTTP-проксі підключається через аргументи запуску браузера і метод page.authenticate(). По-друге, ротація IP через API кожні 30-50 запитів захищає від банів набагато ефективніше, ніж будь-які інші трюки. По-третє, завжди перевіряйте відсутність витоку DNS і HTTP-заголовків, які видають проксі.
Мобільний 4G проксі на базі реальних LTE-модемів у Польщі дає вам те, чого не може дати жоден датацентровий або residential проксі: IP-адрес, який сайти сприймають як живого користувача зі смартфоном. Це означає менше капч, менше банів і більше зібраних даних за менший час. Спробуйте безкоштовно протягом години, без кредитної картки, щоб переконатись особисто. Переглянути тарифи та отримати безкоштовний пробний доступ і запустити свій перший Puppeteer-скрипт через польський 4G проксі вже сьогодні.
