Mobil Proxy Node.js Kurulumu
Mobil proxy için adım adım Node.js kurulum kılavuzu. Güvenilir JavaScript otomasyonu için axios, node-fetch, Puppeteer ve Playwright’ı, operatöre ait özel 4G/5G IP adresleriyle yapılandırın.
- https-proxy-agent entegrasyonu — Axios ve yerel fetch isteklerini kimlik doğrulamalı HTTP tünelleri üzerinden yönlendirir.
- socks-proxy-agent desteği — modern Node.js çalışma ortamlarında uzaktan DNS çözümleme özelliğine sahip tam SOCKS5 protokolü desteği.
- Puppeteer sayfa kimlik doğrulaması — page.authenticate() işlevini veya Chrome çalışma zamanı bayraklarını kullanarak proxy kimlik bilgileri isteklerini işleyin.
- Playwright bağlam yalıtımı — sızıntı olmayan çoklu hesap kullanımı için her tarayıcı bağlamına özel mobil proxy'ler atayın.
Node.js Proxy Seçenekleri
Unlike browser runtimes or Python, Node.js does not automatically read HTTP_PROXY environment variables out of the box for built-in HTTP requests. In modern JavaScript and TypeScript backends, routing outbound traffic through a proxy requires configuring an Agent dispatcher or passing network parameters into high-level browser automation frameworks.
| Araç / Kütüphane | Vekil Yöntemi | Kimlik Doğrulama İşlemleri | Kullanım Senaryosu |
|---|---|---|---|
| axios | https-proxy-agent | Satır içi URL kimlik bilgileri | REST API'leri, arka uç mikro hizmetleri |
| fetch (Node 18+) | undici ProxyAgent | ProxyAgent temel kimlik doğrulama | Standart web API'leri, Next.js arka uçları |
| Puppeteer | args + page.authenticate | CDP olayı yakalama | Headless Chrome otomasyonu |
| Playwright | Bağlam proxy yapılandırması | Yerel sunucu nesnesi | Modern tarayıcı veri toplama ve testleri |
axios ve node-fetch Kurulumu
Axios kullanırken, geliştiriciler sıklıkla temel bir { host, port, auth } proxy nesnesini aktarmaya çalışırlar. Bu, düz metin HTTP için işe yarasa da, HTTPS hedeflerinde genellikle bağlantı sıfırlama hatalarına neden olur. Sektör standardı çözüm, temiz HTTP CONNECT tünelleri kurmak için https-proxy-agent veya socks-proxy-agent’ı yüklemektir.
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
// Define dedicated PXM2 mobile proxy endpoint
const proxyUrl = 'http://user123:secret456@proxy.pxm2.io:8000';
const httpsAgent = new HttpsProxyAgent(proxyUrl);
// Create reusable axios client instance
const client = axios.create({
httpsAgent,
timeout: 15000,
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
},
});
async function checkCarrierIp() {
try {
const response = await client.get('https://ipinfo.io/json');
console.log('Connected through mobile IP:', response.data.ip);
} catch (err) {
console.error('Proxy request failed:', err.message);
}
}
checkCarrierIp();
Node.js’de SOCKS5 proxy’leri kullanmak için socks-proxy-agent paketini yükleyin ve SocksProxyAgent('socks5h://user:pass@proxy.pxm2.io:1080') nesnesini başlatın. socks5h protokolü, istemci tarafında bilgi sızıntısı olmadan uzaktan DNS çözümlemesini sağlar.
Puppeteer Proxy Yapılandırması
Puppeteer, harici bir Chromium ikili dosyasını çalıştırır. Chrome, komut satırı argümanlarında satır içi kullanıcı adı ve şifre kimlik bilgilerini kabul etmediğinden, Puppeteer iki aşamalı bir süreç gerektirir: tarayıcıyı --proxy-server seçeneğiyle başlatmak ve Chrome DevTools Protokolü (CDP) üzerinden kimlik bilgilerini sağlamak için page.authenticate() işlevini çağırmak.
import puppeteer from 'puppeteer';
async function runBrowser() {
const browser = await puppeteer.launch({
headless: 'new',
args: [
// 1. Pass host and port to Chrome flags
'--proxy-server=http://proxy.pxm2.io:8000',
'--no-sandbox',
],
});
const page = await browser.newPage();
// 2. Intercept 407 authentication challenges
await page.authenticate({
username: 'user123',
password: 'secret456',
});
await page.goto('https://ipinfo.io', { waitUntil: 'domcontentloaded' });
const ip = await page.$eval('body', el => el.innerText);
console.log('Puppeteer IP verified:', ip);
await browser.close();
}
runBrowser();
Playwright Vekil Kurulumu
Playwright, Puppeteer’e kıyasla daha temiz bir proxy ergonomisi sunar. CDP kimlik doğrulama sürecini kesintiye uğratmaya dayanmak yerine, Playwright bağlam düzeyinde proxy ayarlarını tanımlamanıza olanak tanır. Bu sayede, tek bir Chromium örneği içinde aynı anda farklı tarayıcı bağlamlarına farklı mobil proxy’ler atanabilir.
import { chromium } from 'playwright';
async function main() {
const browser = await chromium.launch({ headless: true });
// Create isolated context with dedicated mobile proxy
const context = await browser.newContext({
proxy: {
server: 'http://proxy.pxm2.io:8000',
username: 'user123',
password: 'secret456',
},
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
});
const page = await context.newPage();
await page.goto('https://api.ipify.org?format=json');
console.log(await page.textContent('body'));
await context.close();
await browser.close();
}
main();
Node.js Proxy için En İyi Uygulamalar
Node.js kazıyıcılarını ve botlarını büyük ölçekte çalıştırırken, doğru bağlantı havuzu yönetimi ve bellek yönetimi hayati önem taşır:
-
1. Proxy Ajanlarında Keep-Alive Özelliğini EtkinleştirinHttpsProxyAgent seçeneklerinizde her zaman keepAlive: true ayarını yapın. Kalıcı TCP soketlerinin yeniden kullanılması, her ardışık istekte 100 ms–250 ms mobil ağ gecikmesinden tasarruf sağlar.
-
2. Etkin Olmayan Bağlamları KapatPlaywright ve Puppeteer'da, kullanılmayan tarayıcı bağlamlarını veya sayfaları asla açık bırakmayın. Açık kalan bağlamlar bellek tüketir ve hücresel modeme açık soket bağlantıları sürdürür.
-
3. İsteğe Bağlı Döndürme Gecikmelerinin YönetilmesiNode.js’de PXM2 webhook’u aracılığıyla bir IP rotasyonunu tetiklerken, rotasyon çağrısını, istek kuyruğunuzu işleme koymadan önce 6 saniye bekleyen bir Promise içine alın.
Amerika Birleşik Devletleri
Birleşik Krallık
Fransa
Sık Sorulan Sorular
Node.js'de Axios ile mobil proxy'yi nasıl kullanabilirim?
Modern Axios'ta, bir httpAgent veya httpsAgent oluşturmak için https-proxy-agent veya socks-proxy-agent kullanın ve bunu Axios örneğinize aktarın. Bu, temel proxy nesnesi yapılandırmalarındaki sorunları ortadan kaldırır ve HTTPS için tam CONNECT tünel desteği sağlar.
Playwright, proxy kimlik doğrulamasını nasıl gerçekleştirir?
Playwright, doğrudan browser.newContext({ proxy: { server, username, password } }) içinde veya tarayıcının başlatılması sırasında proxy kimlik doğrulamasını destekler. Puppeteer’ın aksine, Playwright kimlik doğrulamayı ağ protokolü katmanında gerçekleştirir ve sayfa düzeyinde açılır pencerelere gerek duymaz.
Node.js’in yerel fetch API’siyle mobil proxy’leri kullanabilir miyim?
Evet. Node.js 18 ve sonraki sürümlerde, global fetch işlevi Undici’yi kullanır. Bir proxy’yi, undici’den gelen özel bir Dispatcher örneği (ProxyAgent) aktararak ya da undici-fetch ile standart HTTP_PROXY ortam değişkenlerini ayarlayarak yapılandırabilirsiniz.
Node.js HTTP proxy'leri üzerinden WebSocket bağlantıları neden başarısız oluyor?
WebSockets için HTTP 101 Switching Protocols güncellemesi gereklidir. WebSockets’i bir HTTP proxy üzerinden yönlendirirken, proxy sunucunuzun HTTP CONNECT yöntemini desteklediğinden emin olun ya da yük başlıklarını incelemeye gerek kalmadan ham TCP akışlarını tünelleyen bir SOCKS5 proxy’ye geçin.
Node.js komut dosyalarında mobil proxy IP rotasyonunu nasıl yönetebilirim?
API aracılığıyla rotasyon yaparken, PXM2 rotasyon URL’nize bir HTTP GET isteği gönderin. Hücresel modemin yeni bir taşıyıcı oturumu kurmasına olanak sağlamak için 5 ila 10 saniyelik kısa bir gecikme uygulayın, ardından devam etmeden önce https://api.ipify.org adresine bir IP kontrolü gerçekleştirin.
İlgili Mobil Proxy Kılavuzları
İlgili geliştirici eğitimlerini, dil entegrasyonlarını ve mobil proxy altyapısı kılavuzlarını inceleyin.
Geliştirici Kılavuzları
Platform ve Veri Toplama Kılavuzları
Carrier Proxy'leri ile Node.js Otomasyonunuzu Hızlandırın
Sınırsız veri, düşük gecikme süresi ve API destekli anlık IP rotasyonu özelliklerine sahip özel 4G/5G mobil modemler.
Mobil Proxy Alın