Wie man einen Axios Proxy einrichtet: Definitive Anleitung

Bemerkungen: 0

Axios ist eine JavaScript-Bibliothek zum Senden von HTTP-Anfragen, die asynchrone Datenverarbeitung, Antwort- und Fehlerbehandlung unterstützt und sich sowohl in Client-Anwendungen als auch in Node.js-basierte Server leicht integrieren lässt. In vielen praktischen Szenarien, insbesondere bei einer großen Anzahl von Anfragen oder wenn der Zugriff auf Inhalte begrenzt ist, wird es oft notwendig, einen Proxy in Axios zu setzen. Zwischengeschaltete Server ermöglichen es, die IP-Adresse des Clients zu ändern und die Anfragen über einen zwischengeschalteten Knoten zu leiten. Da die Verwendung eines Axios-Proxys eine genaue Konfiguration und ein Verständnis der Verbindungsarchitektur erfordert, werden in diesem Handbuch Methoden für die Verbindung von HTTP(S)- und SOCKS-Protokollen, Details zur Authentifizierung, Agentenkonfiguration sowie häufige Fehler und deren Behebung vorgestellt.

Warum einen Axios Proxy verwenden?

Sie wird in den folgenden Szenarien angewendet:

  • Zugang zu regionalen Inhalten - Senden von Anfragen aus einer bestimmten geografischen Region, um den ordnungsgemäßen Betrieb mit lokalisierten Ressourcen zu gewährleisten.
  • Verteilte Automatisierung - Verwaltung von Anforderungsströmen über verschiedene IP-Adressen zur stabilen Datenverarbeitung und Minimierung von Ausfällen.
  • Testen und Debuggen - Leiten des Datenverkehrs durch einen Zwischenserver zur Analyse von Anfragen und Antworten.
  • Arbeit in Unternehmensnetzen - Erfüllung interner Netzarchitektur- und Sicherheitsanforderungen.

Die Verwendung von Axios mit richtig konfigurierten Zwischenknoten ermöglicht die Umsetzung dieser Szenarien. Es ist jedoch wichtig zu verstehen, dass die Bibliothek selbst nur ein Werkzeug zum Senden von HTTP-Anfragen ist. Die Fähigkeit, Sperren zu umgehen, auf geobeschränkte Inhalte zuzugreifen und den Datenverkehr zu verwalten, hängt davon ab:

  • die Merkmale des Proxyservers selbst (Typ, verwendetes Protokoll, Verfügbarkeit der Authentifizierung);
  • externe Proxy-Logik (IP-Rotation, Lastausgleich);
  • Funktionen der Netzinfrastruktur, einschließlich Routing- und Verkehrsrichtlinien.

Welche Arten von Proxies werden von Axios unterstützt?

Axios unterstützt je nach Protokoll die folgenden Typen:

  1. HTTP und HTTPS (integrierte Unterstützung) unter Verwendung des Proxy-Parameters. Für die Konfiguration reicht es aus, diesen anzugeben:
    • IP-Adresse;
    • Hafen;
    • Benutzernamen und Passwort (falls erforderlich).
  2. SOCKS (über Agenten von Drittanbietern). Die Bibliothek selbst unterstützt die SOCKS-Protokolle nicht direkt, aber sie können über Bibliotheken von Drittanbietern wie socks-proxy-agent verwendet werden.

    Für die Integration müssen Sie:

    • vErstellen Sie eine Instanz eines Proxy-Agenten und geben Sie den Typ (SOCKS4/SOCKS5) und die Verbindungsparameter (IP, Port, Benutzername und Passwort) an,
    • Übergeben Sie das erstellte Objekt an Axios mit den Optionen httpAgent und httpsAgent.
    • Senden Sie die Anfrage.

Wichtig: Die Bibliothek unterstützt nicht SSH, FTP, Shadowsocks oder ähnliche Protokolle. Um sie zu verwenden, müssen separate Tools verwendet werden, oder das Tunneling sollte auf Betriebssystemebene konfiguriert werden.

Wie richtet man einen Axios Proxy ein?

Vor der Einrichtung müssen mehrere technische Aspekte berücksichtigt werden: welches Protokoll verwendet wird, ob eine Authentifizierung erforderlich ist und ob eine Rotation notwendig ist. Im Folgenden finden Sie eine schrittweise Anleitung für verschiedene Verbindungsmethoden.

Vorbereitende Schritte

Bevor Sie den Axios HTTP-Proxy konfigurieren, müssen Sie die Arbeitsumgebung entsprechend vorbereiten.

Hinweis: Die Befehle sollten im Terminal des Betriebssystems (CMD, PowerShell, bash) oder im integrierten Terminal einer IDE wie Visual Studio Code ausgeführt werden. Die korrekte Ausführung setzt voraus, dass das aktuelle Arbeitsverzeichnis mit dem Stammverzeichnis des Projekts übereinstimmt.

  1. Erstellen Sie einen neuen Projektordner und navigieren Sie dorthin:
    mkdir proxy-setup-axios
    cd proxy-setup-axios
  2. Initialisieren Sie ein Node.js-Projekt. Nach der Ausführung dieses Befehls wird im Projektordner eine package.json-Datei mit Standardparametern angezeigt:
    npm init -y
  3. Installieren Sie die Axios-Bibliothek:
    npm install axios
  4. Erstellen Sie die Hauptprojektdatei:
    echo>app.js
  5. Konfigurieren Sie das Startscript. Öffnen Sie die Datei package.json mit einem beliebigen Editor und ersetzen Sie den Inhalt des Abschnitts scripts durch:
    "scripts": {
    "start": "node app.js"
    }

    Wichtig: Die Datei package.json kann mit einem beliebigen Code-Editor oder sogar mit Notepad geöffnet werden. Beachten Sie bei der Bearbeitung sorgfältig die Syntaxregeln: Entfernen oder ändern Sie keine Anführungszeichen, Klammern oder Doppelpunkte, da dies zu Ausführungsfehlern führt.

  6. Testen Sie die endgültige Konfiguration:
    npm start

Wenn alle Schritte korrekt ausgeführt werden, wird die Anwendung auch mit einer leeren Konfigurationsdatei erfolgreich gestartet. In diesem Fall wird das Programm einfach geschlossen, ohne weitere Ausgaben zu zeigen. Dieses Verhalten ist zu erwarten und zeigt an, dass die Datei noch keinen ausführbaren Code enthält, die Umgebung aber korrekt eingerichtet ist.

Einrichten eines statischen HTTP-Proxys

Bei der Verwendung einer statischen Lösung werden alle Anfragen über dieselbe IP-Adresse geleitet. Dieser Ansatz ist anwendbar, wenn keine Rotation erforderlich ist.

Um einen Axios HTTPS-Proxy zu verbinden, verwenden Sie die folgende Konfiguration:

axios.get(URL, {
proxy: {
protocol: 'http',
host: '82.211.7.97',
port: 59100
}
})

Wenn der Zwischenserver eine Authentifizierung erfordert, fügen Sie einen Authentifizierungsblock hinzu:

auth: {
username: 'proxyUser',
password: 'proxyPass'
}

Ein vollständiges Beispiel mit der Bearbeitung von Anfragen an den httpbin.org-Dienst:

const axios = require('axios');

async function requestThroughProxy() {
try {
const response = await axios.get('https://httpbin.org/ip', {
proxy: {
protocol: 'http',
host: '82.211.7.97',
port: 59100,
auth: {
username: 'proxyUser',
password: 'proxyPass'
}
}
});
console.log('Proxy IP:', response.data);
} catch (error) {
console.error('Request failed:', error.message);
}
}

requestThroughProxy();

Der try/catch-Block wird verwendet, um mögliche Fehler während der Anfrage zu behandeln. In diesem Beispiel wird die Anfrage an https://httpbin.org/ip gesendet, das die aktuelle IP-Adresse des Clients zurückgibt. Wenn der Proxy nicht verfügbar ist oder die Anfrage fehlschlägt, fängt der catch-Block die Ausnahme ab und zeigt eine Fehlermeldung an.

Verwendung von Axios mit Proxy-Listen

Wenn mehrere Anfragen über dieselbe IP-Adresse laufen, steigt das Risiko, von der Zielressource blockiert zu werden. Um dies zu vermeiden, werden häufig Residential Proxies mit Unterstützung für IP-Rotation eingesetzt. Solche Lösungen bieten ein höheres Maß an Maskierung und ermöglichen eine gleichmäßige Verteilung der Last. In der Praxis wird dies durch die Erstellung eines vorkonfigurierten Pools von IP-Adressen und die Implementierung eines Mechanismus für die zufällige oder sequentielle Auswahl von Proxys im Code erreicht.

Hier ist ein Beispiel für die zufällige IP-Auswahl mit dem http-proxy-agent-Paket:

const axios = require('axios');
const HttpProxyAgent = require('http-proxy-agent');

// Proxy-Liste mit Authentifizierung
const proxyList = [
'http://user1:pass1@82.211.7.97:59100',
'http://user2:pass2@82.211.7.97:59101',
'http://user3:pass3@82.211.7.97:59102'
];

// Funktion zur zufälligen Auswahl eines Proxys
function getRandomProxy() {
const index = Math.floor(Math.random() * proxyList.length);
return proxyList[index];
}

// Versenden mehrerer Anfragen mit IP-Rotation
(async () => {
for (let i = 0; i < 5; i++) {
const proxy = getRandomProxy();
const agent = new HttpProxyAgent(proxy);

try {
const response = await axios.get('https://api.ipify.org?format=json', {
httpAgent: agent,
httpsAgent: agent,
timeout: 3000
});
console.log(`Used proxy ${proxy} -- IP:`, response.data.ip);
} catch (err) {
console.error(`Proxy ${proxy} failed:`, err.message);
}
}
})();

In diesem Beispiel verwendet jede Anfrage an Axios eine zufällig ausgewählte Proxy-Adresse aus der angegebenen Liste. Der Dienst https://api.ipify.org?format=json gibt die externe IP zurück, so dass überprüft werden kann, ob die Verbindung korrekt hergestellt wurde. Im Falle eines Fehlers (z. B. ein nicht verfügbarer Server oder falsche Authentifizierungsdaten) fängt der Catch-Block die Ausnahme ab und zeigt eine Fehlermeldung an.

Einrichten des SOCKS5-Proxys in Axios

Die Verwendung von SOCKS5 ist gerechtfertigt, wenn Netzwerkfilter umgangen werden sollen, wenn mit eingeschränkten APIs gearbeitet wird und in Szenarien, die die Übertragung von nicht standardmäßigem Datenverkehr, einschließlich DNS-Anfragen, erfordern.

Um mit dem Axios Socks5-Proxy zu arbeiten, wird empfohlen, das Paket socks-proxy-agent zu verwenden. Dieses Paket ermöglicht die Unterstützung für diese Art von Vermittler durch einen Proxy-Agenten, der sich nahtlos in die Bibliothek integriert.

Installation des Axios-Proxy-Agenten:

npm install axios socks-proxy-agent

Axios Proxy-Konfiguration:

const axios = require('axios');
const { SocksProxyAgent } = require('socks-proxy-agent');

// Parameter des Zwischenservers
const proxy = {
host: '45.192.135.68',// IP-Adresse
port: 50101,// Hafen
username: 'Username',// Benutzername (falls erforderlich)
password: 'Password'// Passwort (falls erforderlich)
};

// Proxy-URL mit Authentifizierung erstellen
const proxyUrl = `socks5://${proxy.username}:${proxy.password}@${proxy.host}:${proxy.port}`;

// SOCKS5-Agent erstellen
const agent = new SocksProxyAgent(proxyUrl);

// Anfrage über Proxy in Axios
axios.get('https://api.ipify.org/?format=json', { httpsAgent: agent })
.then(response => {
console.log('Your IP:', response.data);
})
.catch(error => {
console.error('Connection error:', error.message);
});

Wichtig: Wenn der Vermittler keine Authentifizierung verlangt, sollten Sie die ProxyUrl ohne Benutzernamen und Passwort erstellen:

const proxyUrl = `socks5://${proxy.host}:${proxy.port}`;

Wie testet man HTTP(S) und SOCKS Proxies in Axios?

Um zu überprüfen, ob alles korrekt funktioniert, können Sie eine Anfrage an einen Dienst senden, der z. B. die externe IP-Adresse zurückgibt:

axios.get('https://api.ipify.org?format=json', { httpsAgent: agent })
.then(response => {
console.log('Your IP:', response.data.ip);
})
.catch(error => {
console.error('Connection error:', error.message);
});

So können Sie sich vergewissern, dass die Anfragen ordnungsgemäß weitergeleitet werden.

Empfehlungen für die Konfiguration von Proxies in Axios

Der effektive Einsatz von Axios bei Vermittlern erfordert eine durchdachte Konfiguration unter Berücksichtigung der folgenden Schlüsselaspekte:

  • Zeitüberschreitungen anfordern. Angemessene Timeout-Werte helfen, Hänger bei instabilen Verbindungen zu vermeiden und ermöglichen einen schnellen Wechsel zu alternativen Routen.
  • Wiederholungslogik. Wenn die primäre IP-Adresse nicht verfügbar ist, ist es wichtig, Wiederholungsversuche oder Failover auf eine Backup-Adresse zu konfigurieren. Dies hilft, Ausfallzeiten zu vermeiden.
  • Wahl des Protokolls. HTTP/HTTPS-Protokolle sind in den meisten Fällen anwendbar: Web Scraping, API-Anfragen, Integrationen. SOCKS5-Proxys werden bevorzugt, wenn mit nicht standardmäßigem Datenverkehr (einschließlich TCP-Streams und DNS-Anfragen) gearbeitet wird, Netzwerkbeschränkungen umgangen werden sollen oder wenn eine minimale Paketstrukturierung erforderlich ist.
  • Fehlerbehandlung. Der Code sollte eine Fehlerbehandlung sowohl für Fehler auf Netz- als auch auf HTTP-Ebene implementieren. Dazu gehören Verbindungsfehler, Wiederholungsversuche mit exponentiellem Backoff und bei Bedarf der Wechsel zu anderen Servern.

Die Befolgung dieser Empfehlungen gewährleistet einen stabilen Betrieb des Axios-Proxys, auch bei starker Belastung.

Fehlersuche

Axios-Proxys können aus verschiedenen Gründen fehlschlagen, hauptsächlich aufgrund der Besonderheiten der Arbeit mit Proxys in Node.js, wo die richtige Konfiguration und Protokollkompatibilität entscheidend ist.

ECONNREFUSED - Verbindung verweigert

Ursache: Es wurde eine falsche IP-Adresse oder ein falscher Port angegeben, der Proxy-Server ist nicht verfügbar, oder die Verbindung wird auf Netzwerkebene durch eine Firewall oder das Hostsystem blockiert.

Lösung:

  1. Überprüfen Sie, ob die IP-Adresse und der Port korrekt sind.
  2. Wenn die Verbindung unterbrochen ist, wenden Sie sich an den Anbieter oder tauschen Sie sie aus.
  3. Führen Sie einen curl-Befehl aus, um die IP zu überprüfen:
    curl -x http://username:password@proxy-host:port https://api.ipify.org
  4. Fügen Sie einen Try/Catch-Block mit Logik für die Behandlung von Ausnahmen hinzu und wechseln Sie im Falle eines Fehlers zu einer anderen IP:
    try {
    await axios.get(url, { httpAgent });
    } catch (err) {
    if (err.code === 'ECONNREFUSED') {
    // Zu einer anderen IP wechseln
    }
    }

ERR_BAD_RESPONSE oder 502 Bad Gateway

Ursache: Der Zwischenserver gibt eine ungültige Antwort von der Zielressource zurück, weil:

  • Überlastung oder Überschreitung der Höchstzahl der gleichzeitigen Verbindungen;
  • instabile Verbindung zwischen dem Proxy und dem Zielserver;
  • Filterung oder Blockierung des Datenverkehrs (z. B. aufgrund von Anti-Bot-Schutz, Geofilterung oder Header-Einschränkungen).

Lösung:

  • Testen Sie die problematische IP manuell mit curl oder einem ähnlichen Tool, um zu überprüfen, ob sie wirklich einen Fehler zurückgibt.
  • Wenn der Fehler weiterhin besteht, entfernen Sie diese IP-Adresse vorübergehend aus dem Pool.
  • Stellen Sie sicher, dass die Liste Backup-Adressen enthält, und konfigurieren Sie einen automatischen Failover/Retry-Mechanismus.
  • Verwenden Sie die axios-retry-Bibliothek, die Wiederholungsversuche mit allmählich zunehmenden Abständen dazwischen einfügt.

Tunneling-Socket konnte nicht eingerichtet werden

Ursache: Der Zwischenserver verwendet SOCKS5, während die Verbindung über einen HTTP- oder HTTPS-Agenten hergestellt wird. Axios unterstützt Proxys nicht direkt, daher ist das Schlüsselelement der Konfiguration die Auswahl des richtigen Agenten.

Lösung:

Verbinden Sie den entsprechenden Agenten (http-proxy-agent, https-proxy-agent, socks-proxy-agent) je nach verwendetem Protokolltyp.

const HttpsProxyAgent = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://user:pass@ip:port');

Für SOCKS5:

const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5://user:pass@ip:port');

407 Proxy-Authentifizierung erforderlich - Autorisierungsfehler

Ursache: Ungültiger Benutzername oder Passwort, fehlender Proxy-Authorization-Header oder falsches Format der Verbindungszeichenfolge.

Lösung:

Überprüfen Sie die Syntax der Verbindungszeichenfolge: http://user:pass@ip:port. Stellen Sie sicher, dass der Agent die Authentifizierungsparameter korrekt übergibt.

const HttpsProxyAgent = require('https-proxy-agent');

const proxyUrl = 'http://username:password@82.211.9.160:50100';
const agent = new HttpsProxyAgent(proxyUrl);

Schlussfolgerung

Die Konfiguration des Axios-Proxys ist ein wesentlicher Schritt für die Arbeit mit Anonymität, Lastausgleich und die Umgehung von Beschränkungen. Die Zuverlässigkeit der Anfragen wird durch die richtige Konfiguration des Proxy-Agenten, die Auswahl kompatibler Protokolle und eine gut durchdachte Fehlerbehandlung gewährleistet. Gleichzeitig wirkt sich die Qualität des Proxyservers direkt auf die Effizienz des Tools aus. Kostenlose Proxys sind in der Regel instabil, werden oft blockiert und werden schnell zur Ursache von Fehlern.

Für den produktiven Einsatz empfiehlt es sich, auf kostenpflichtige Lösungen von vertrauenswürdigen Anbietern zurückzugreifen, die große IP-Pools, Rotationssupport und eine hohe Betriebszeit bieten.

FAQ

Kann der Axios Proxy global über Umgebungsvariablen konfiguriert werden?

Ja, Axios kann in der Tat global für die Verwendung eines Proxyservers mit Umgebungsvariablen konfiguriert werden: HTTP_PROXY, HTTPS_PROXY und NO_PROXY. Diese Variablen können über die Systemeigenschaften eingestellt werden. Öffnen Sie dazu Systemeigenschaften → Umgebungsvariablen, erstellen Sie eine neue Variable (z. B. HTTP_PROXY) und geben Sie die Adresse des Proxyservers als Wert an.

Ist für Proxys für Privatpersonen eine Authentifizierung erforderlich?

Axios unterscheidet nicht zwischen verschiedenen Arten von Proxys: privat, mobil oder Rechenzentrum - die Authentifizierungseinrichtung ist die gleiche. Die wichtigste Voraussetzung ist das korrekte URL-Format oder ein richtig definierter proxy.auth-Block.

Welche Alternativen zu Axios gibt es bei der Zusammenarbeit mit Vermittlern?

Die wichtigsten Alternativen zur Verwendung von Axios-Proxys in Node.js sind node-fetch und Got. Beide Bibliotheken unterstützen HTTP/HTTPS-Proxys durch Umgebungsvariablen sowie durch explizite Konfiguration im Code. Wo möglich, bietet Got flexiblere Optionen für Timeouts, Wiederholungen und die Anpassung von Anfragen, während node-fetch eine Syntax hat, die Frontend-Entwicklern vertrauter ist. Die Wahl hängt von Ihren spezifischen Bedürfnissen und Ihrem Komfort ab.

Bemerkungen:

0 Bemerkungen