Einen lokalen SOCKS5-Konfigurator erstellen, um ChangeMyIP-Proxys zu verketten und zu rotieren (Windows, macOS, Linux)
Verwandle jede App in eine App mit Proxy: Betreibe einen lokalen SOCKS5-Konfigurator mit gost, verkette zwei ChangeMyIP-Endpunkte für Länder-zu-Länder-Routing und rotiere über Residential-Knoten.
Überblick
Ein SOCKS5-Konfigurator ist ein kleiner lokaler Dienst, der auf einem Port auf Ihrem Rechner lauscht und alles, was Ihre Apps darüber senden, an einen vorgeschalteten Proxy oder durch eine Proxy-Kette weiterleitet. Er ist die praktische Antwort, wenn eine Anwendung keine eigenen Proxy-Einstellungen hat oder wenn Sie möchten, dass mehrere voneinander unabhängige Apps eine einzige Proxy-Konfiguration gemeinsam nutzen, statt jede einzeln zu bearbeiten.
In diesem Tutorial erstellen Sie diesen Konfigurator mit gost, einem Open-Source-Proxy-Tool, und richten ihn auf ChangeMyIP-SOCKS5-Endpunkte aus. Anschließend fügen Sie einen zweiten Hop für Länder-zu-Länder-Verkettung hinzu, rotieren innerhalb eines Hops über mehrere Endpunkte, halten Anmeldedaten verborgen und betreiben den Listener dauerhaft unter Windows, macOS und Linux.
Jeder SOCKS5-Anbieter funktioniert mit der folgenden Konfiguration. ChangeMyIP dient als Beispiel, weil es SOCKS5 auf dedizierten und gemeinsamen Datacenter-Endpunkten sowie rotierenden Residential-Endpunkten anbietet und weil die pauschale monatliche Abrechnung bedeutet, dass ein dauerhaft laufender lokaler Listener keine Kosten pro Anfrage verursacht.
Voraussetzungen
- Ein ChangeMyIP-Tarif, der SOCKS5-Zugriff enthält, sowie Host, Port, Benutzername und Passwort Ihres Endpunkts aus dem Dashboard.
- Einen Endpunkt für jeden Hop, den Sie verketten möchten (Verkettung benötigt zwei unabhängige Endpunkte).
- Berechtigung, einen Listener an
127.0.0.1:1080oder einem beliebigen freien lokalen Port zu binden. curlzur Überprüfung.- Grundlegende Vertrautheit mit dem Bearbeiten einer YAML-Datei.
Wie der Konfigurator zwischen Ihren Apps und ChangeMyIP sitzt
Datenverkehrsweg:
- Eine App öffnet eine SOCKS5-Verbindung zu
127.0.0.1:1080. - Der Konfigurator nimmt sie an und leitet die Sitzung an den ersten ChangeMyIP-Endpunkt weiter (den Entry-Hop).
- Wenn ein zweiter Hop definiert ist, öffnet der Entry-Endpunkt eine Verbindung zum Exit-Endpunkt.
- Der Exit-Endpunkt stellt die ausgehende Anfrage und die Antwort läuft die Kette zurück.
Was Ihnen das bringt:
- Einen einzigen lokalen Port, den jede App nutzen kann, auch Apps ohne integrierte Proxy-Einstellungen.
- Remote-DNS-Auflösung, sodass Namensauflösungen nicht an Ihren lokalen Resolver leaken, wenn Sie das Schema
socks5hverwenden. - Deterministischer Egress: ein Datacenter-Endpunkt für eine stabile IP oder ein rotierender Residential-Endpunkt, wenn Sie IP-Vielfalt benötigen.
- Chain-Routing: Erzwingen Sie den Datenverkehr durch ein bestimmtes Standortpaar, indem Sie zwei Endpunkte verketten.
Schritte
- Klassifizieren Sie die ChangeMyIP-Endpunkte, die Sie verwenden werden. Kopieren Sie Host, Port, Benutzername und Passwort für jeden und notieren Sie, ob es sich um einen dedizierten Datacenter-Endpunkt, einen gemeinsamen Datacenter-Endpunkt oder einen rotierenden Residential-Endpunkt handelt.
| Rolle im Konfigurator | Endpunkttyp | Wann verwenden |
|---|---|---|
| Entry-Hop | Dediziertes Datacenter | Schneller, stabiler erster Abschnitt; halten Sie ihn nahe an Ihrer eigenen Region, um Latenz zu begrenzen |
| Entry-Hop | Residential rotierend | Wenn der erste Abschnitt nicht auf ein einzelnes Datacenter-Subnetz zurückweisen soll |
| Exit-Hop | Datacenter oder Residential im Zielland | Wenn die endgültige IP in einem bestimmten Land oder einer Stadt erscheinen muss |
| Einzelner Hop (keine Kette) | Beides | Alltägliches Routing, bei dem eine Exit-IP ausreicht |
- Installieren Sie gost. Laden Sie das Release-Archiv für Ihr Betriebssystem und Ihre Architektur von der offiziellen gost-Releases-Seite herunter und entpacken Sie es.
Windows (PowerShell):
Expand-Archive -Path .\gost_*_windows_amd64.zip -DestinationPath .\gost
.\gost\gost.exe -V
macOS und Linux (verwenden Sie das darwin- oder linux-Archiv und den passenden amd64- oder arm64-Build):
tar -xzf gost_*_linux_amd64.tar.gz
sudo install -m 0755 gost /usr/local/bin/gost
gost -V
- Erstellen Sie die Konfigurator-Konfiguration für einen einzelnen Hop. Speichern Sie sie als
gost.yamlund schränken Sie sie ein, da sie Anmeldedaten enthält.
chmod 600 gost.yaml
services:
- name: socks-in
addr: "127.0.0.1:1080"
handler:
type: socks5
chain: cmi-single
listener:
type: tcp
chains:
- name: cmi-single
hops:
- name: hop-exit
nodes:
- name: exit-dc
addr: proxy-host.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
Ersetzen Sie proxy-host.example:1080 durch den Endpunkt aus Ihrem ChangeMyIP-Dashboard und tragen Sie die mit Ihrem Tarif ausgegebenen Anmeldedaten ein.
- Starten Sie den Listener und führen Sie einen Smoke-Test durch.
gost -C gost.yaml
Bestätigen Sie in einem zweiten Terminal, dass die Exit-IP zum Proxy gehört und nicht zu Ihnen:
curl --silent --show-error --proxy socks5h://127.0.0.1:1080 https://api.ipify.org
echo
curl --silent https://api.ipify.org
echo
Die erste Anfrage sollte die ChangeMyIP-Endpunktadresse melden; die zweite meldet Ihre eigene Verbindung.
- Fügen Sie einen zweiten Hop hinzu, um zwei Standorte zu verketten. Die Anfrage durchläuft App, dann Entry-Endpunkt, dann Exit-Endpunkt, dann die Zielseite. Die Seite sieht die Exit-Endpunktadresse; der Exit-Endpunkt sieht den Entry-Endpunkt als seinen Client.
services:
- name: socks-in
addr: "127.0.0.1:1080"
handler:
type: socks5
chain: cmi-two-hop
listener:
type: tcp
chains:
- name: cmi-two-hop
hops:
- name: hop-entry
nodes:
- name: entry-de
addr: entry-host.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
- name: hop-exit
nodes:
- name: exit-us
addr: exit-host.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
- Rotieren Sie innerhalb eines Hops über Endpunkte mit einem Selector. So verteilen Sie den Datenverkehr auf mehrere unterschiedliche Adressen, statt einen Knoten festzulegen.
- name: hop-exit
selector:
strategy: round
maxFails: 1
failTimeout: 30s
nodes:
- name: exit-us-1
addr: exit-us-1.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
- name: exit-us-2
addr: exit-us-2.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
- name: exit-us-3
addr: exit-us-3.example:1080
connector:
type: socks5
auth:
username: YOUR_USERNAME
password: YOUR_PASSWORD
Wenn Sie die Adressen lieber nicht selbst auflisten möchten, richten Sie den Hop auf einen einzelnen rotierenden Residential-Endpunkt: ChangeMyIP rotiert die IP auf seiner Seite, und der Konfigurator benötigt nur einen Knoten. Der Pool deckt 40+ Länder, 300+ Städte und 1000+ Subnetze ab, sodass Sie die Rotation über viele verschiedene Netzwerke verteilen können, wenn eine Aufgabe davon abhängt, wie unzusammenhängende Besucher zu erscheinen.
- Richten Sie Ihre Anwendungen auf den lokalen Listener aus. Browser-Proxy-Einstellungen verwenden einen SOCKS5-Host
127.0.0.1und Port1080, mit aktiviertem Remote-DNS, sodass Namen durch den Proxy aufgelöst werden. Kommandozeilen-Tools akzeptieren normalerweise ein Flag oder eine Umgebungsvariable:
export ALL_PROXY=socks5h://127.0.0.1:1080
export HTTPS_PROXY=socks5h://127.0.0.1:1080
Manche Tools ignorieren diese Variablen und benötigen ein explizites Flag, zum Beispiel curl --proxy socks5h://127.0.0.1:1080. Bevorzugen Sie für alles Datenschutzrelevante immer das Schema socks5h gegenüber socks5.
- Halten Sie den Konfigurator am Laufen. Unter Linux ist eine systemd-Unit die sauberste Option:
[Unit]
Description=Local SOCKS5 configurator (gost)
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/gost -C /etc/gost/gost.yaml
Restart=on-failure
User=proxyuser
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
sudo install -m 0600 gost.yaml /etc/gost/gost.yaml
sudo systemctl daemon-reload
sudo systemctl enable --now gost
systemctl status gost
Erstellen Sie unter Windows eine Aufgabe in der Aufgabenplanung, die bei der Anmeldung gost.exe -C C:\gost\gost.yaml ausführt, und stellen Sie sie so ein, dass sie ausgeführt wird, unabhängig davon, ob der Benutzer angemeldet ist. Führen Sie unter macOS denselben Befehl beim Testen aus einem Terminal aus und verpacken Sie ihn dann in einen LaunchAgent, damit er beim Anmelden startet.
Kette und DNS-Verhalten überprüfen
Wiederholen Sie eine Anfrage in einer Schleife, um zu sehen, ob die Rotation tatsächlich stattfindet:
for i in 1 2 3; do
curl --silent --proxy socks5h://127.0.0.1:1080 https://api.ipify.org
echo
done
Überprüfen Sie den gemeldeten Standort der Exit-Adresse:
curl --silent --proxy socks5h://127.0.0.1:1080 https://ifconfig.co/json
- Ein einzelner Hop gibt die Adresse dieses Endpunkts zurück. Eine Zwei-Hop-Kette gibt die Exit-Endpunktadresse zurück, niemals die Entry-Adresse. Wenn Sie die Entry-Adresse sehen, wird die Kette nicht angewendet.
- Das Schema
socks5hbittet den Proxy, Hostnamen aufzulösen. Einfachessocks5://löst lokal auf, was Ihren Resolver und Ihren ungefähren Standort leaken kann, obwohl der Datenverkehr selbst über den Proxy läuft. - Wenn jede Anfrage dieselbe Adresse zurückgibt, obwohl ein Selector konfiguriert ist, prüfen Sie, ob
maxFailsundfailTimeoutKnoten ausschließen und ob der Endpunkt selbst keine sticky Datacenter-Adresse ist.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Behebung |
|---|---|---|
Failed to connect to 127.0.0.1 port 1080 |
Listener läuft nicht oder ist an einen anderen Port gebunden | Starten Sie gost -C gost.yaml und prüfen Sie den addr-Wert in der Konfiguration |
| SOCKS5-Authentifizierungsfehler | Falscher Benutzername, falsches Passwort oder falscher Endpunkt-Host | Kopieren Sie die Anmeldedaten erneut aus dem Dashboard und testen Sie den Endpunkt direkt mit curl |
| Jede Anfrage läuft in eine Zeitüberschreitung | Firewall blockiert ausgehenden Zugriff auf den Endpunkt-Port, oder Ihre Quell-IP ist nicht autorisiert | Testen Sie den rohen Endpunkt ohne den Konfigurator und erlauben Sie dann die Verbindung in Ihrer Firewall |
| Die gemeldete IP ist Ihre eigene | Die App umgeht den Listener, oder Sie haben socks5:// statt socks5h:// verwendet |
Richten Sie die App auf 127.0.0.1:1080 und wechseln Sie das Schema auf socks5h |
| Die IP ändert sich nie | Ein einzelner Knoten ohne Selector oder ein sticky Datacenter-Endpunkt | Fügen Sie einen Selector mit mehreren Knoten hinzu oder verschieben Sie den Hop auf einen rotierenden Residential-Endpunkt |
| Verkettung funktioniert, ist aber langsam | Zwei Hops verdoppeln die Round-Trip-Zeit | Reduzieren Sie auf einen Hop oder platzieren Sie den Entry-Hop näher an Ihrer eigenen Region |
| Konfigurationsänderungen haben keine Wirkung | Ein älterer Prozess läuft noch | Starten Sie den Dienst mit systemctl restart gost neu oder stoppen Sie den Terminalprozess und starten Sie ihn erneut |
Zusammenfassung
- Ein lokaler SOCKS5-Konfigurator, hier mit gost erstellt, gibt jeder Anwendung auf dem Rechner einen Proxy-Endpunkt unter
127.0.0.1:1080, unabhängig davon, ob die App Proxys unterstützt. - Ein Hop bietet stabilen Egress; zwei Hops bieten Länder-zu-Länder-Routing, wobei die Exit-Endpunktadresse diejenige ist, die Websites sehen.
- Selectors rotieren innerhalb eines Hops über mehrere Endpunkte, während ein rotierender Residential-Endpunkt die Rotation auf Anbieterseite übernimmt.
- Verwenden Sie das Schema
socks5h, damit DNS durch den Proxy aufgelöst wird, und überprüfen Sie das Ergebnis mit einer wiederholtencurl-Schleife und einer Geolokalisierungsabfrage. - Halten Sie die YAML-Datei auf
0600und führen Sie den Listener als Dienst aus, damit er Neustarts und Abmeldungen übersteht.