Einleitung: Das erwartet dich am Ende

Wenn du auf dem Mac mit mobilen Proxys arbeitest, kennst du diese Situation: Du trägst Adresse und Port in den WLAN-Einstellungen ein, eine Website zeigt eine neue IP, du freust dich. Und dann stellt sich heraus, dass das Terminal Pakete direkt herunterlädt, git über die alte Adresse läuft und die Hälfte der Apps die Änderung gar nicht mitbekommen hat. Dieser Guide löst das Problem komplett.

Nachdem du alle Schritte durchgegangen bist, hast du einen eingerichteten Proxy auf macOS, der auf drei Ebenen gleichzeitig funktioniert:

  • Auf Systemebene: Safari, Chrome, Mail, Messenger und andere Programme, die die Systemeinstellungen respektieren.
  • Auf Terminal-Ebene: networksetup-Befehle zum Ein-, Ausschalten und Wechseln des Proxys ohne einen einzigen Mausklick.
  • Auf Ebene der Entwickler-Tools: curl, git, Homebrew, pip, npm und andere Utilities, die Umgebungsvariablen statt Systemeinstellungen lesen.

Separat schauen wir uns die Ausnahmeliste an. Genau das Feld, wegen dem ein Teil des Traffics am Proxy vorbeigeht, obwohl du nichts extra konfiguriert hast. Du verstehst, wie sie aufgebaut ist, was du hinzufügen und was du entfernen solltest, und wie du prüfst, dass keine Anfrage direkt durchrutscht, wo sie es nicht soll.

Für wen dieser Guide gedacht ist

Die Anleitung ist für Einsteiger geschrieben. Wenn du noch nie das Terminal geöffnet hast, kein Problem: Jeden Befehl erklären wir Buchstabe für Buchstabe und sagen, was er tut. Der Guide ist nützlich für:

  • Marketer und SMM-Spezialisten, die mehrere Projekte über verschiedene IPs betreuen;
  • Arbitrage-Spezialisten, die schnell Geos wechseln und Kreative prüfen müssen;
  • Entwickler, die Apps und APIs über mobile Proxys testen;
  • Unternehmer, die einmal verstehen wollen, statt bei jedem Proxy-Wechsel einen Spezialisten zu rufen.

Für erfahrene Nutzer gibt es am Ende einen Block mit fortgeschrittenen Techniken: Netzwerkumgebungen, PAC-Dateien, Shell-Aliase und Skripte zur automatischen Rotation.

Was du vorher wissen solltest

Nichts Kompliziertes. Es reicht, die Systemeinstellungen öffnen und Text kopieren zu können. Alles andere wird unterwegs erklärt. Wir behandeln nicht die Einstellungen einzelner Browser oder Antidetect-Browser: Dazu gibt es im Blog eigene Artikel. Hier geht es nur um macOS als System und seine Bordmittel.

Wie viel Zeit du brauchst

Die Grundeinrichtung über die Systemeinstellungen dauert 10 Minuten. Terminal und Entwickler-Tools weitere 15–20 Minuten. Die komplette Prüfung und der Ausnahme-Check etwa 10 Minuten. Insgesamt 30–40 Minuten, wenn du alles ruhig und mit Prüfungen machst.

Vorbereitung

Bevor wir irgendetwas am System ändern, sammeln wir alles Nötige. Eine gute Vorbereitung spart mehr Zeit als jeder Lifehack.

Was du brauchst

  • Mac mit macOS Ventura 13 oder neuer. Alle Beispiele wurden auf macOS Sonoma 14, Sequoia 15 und Tahoe 26 getestet. Bei älteren Versionen mit der Systemeinstellungen-App als Icon-Raster ist der Weg zum Proxy etwas anders – den Unterschied nennen wir separat.
  • Zugangsdaten für den mobilen Proxy. Das sind Server-Adresse (Domain oder IP), Port, Login und Passwort. Mobile Proxys haben meist zwei Ports: einen für HTTP, den zweiten für SOCKS5. Halte beide bereit.
  • Den Link zum IP-Wechsel, falls dein Anbieter ihn bereitstellt. Den brauchst du im Abschnitt zur Automatisierung.
  • Administratorrechte am Mac. Für den Wechsel des System-Proxys über das Terminal fragt macOS nach dem Benutzerpasswort.
  • Einen Texteditor für Notizen. TextEdit oder Notizen reichen völlig.

Was du vor dem Start prüfen solltest

  1. Stelle sicher, dass das Internet ohne Proxy funktioniert. Öffne irgendeine Website in Safari. Wenn sie nicht öffnet, kläre zuerst das Netzwerkproblem, sonst ist später unklar, was genau kaputt ist.
  2. Finde heraus, über welches Interface du verbunden bist: WLAN oder Ethernet-Kabel. Öffne die Systemeinstellungen, Bereich Netzwerk. Die aktive Verbindung ist mit einem grünen Punkt und dem Wort Verbunden markiert. Notiere den Namen: meist WLAN oder Ethernet.
  3. Prüfe deine aktuelle IP ohne Proxy. Öffne im Browser einen IP-Check-Dienst und notiere die Adresse. Damit vergleichen wir das Ergebnis.

Backup der aktuellen Einstellungen

Proxy-Einstellungen in macOS lassen sich leicht zurücksetzen, aber besser ist es, den Ausgangszustand festzuhalten. Besonders wenn du an einem Firmen-Mac arbeitest, an dem der Admin schon etwas eingerichtet hat.

  1. Öffne das Terminal. Drücke Command und Leertaste, tippe Terminal und drücke Enter.
  2. Kopiere den Befehl, füge ihn ein und drücke Enter:
scutil --proxy > ~/Desktop/proxy_backup.txt

Auf dem Schreibtisch erscheint die Datei proxy_backup.txt mit der vollständigen aktuellen Proxy-Konfiguration. Falls du etwas kaputt machst, kannst du die Werte jederzeit mit dieser Datei vergleichen.

Tipp: Lege dir in den Notizen sofort eine Karte mit den Proxy-Daten an: Host, HTTP-Port, SOCKS5-Port, Login, Passwort, Rotations-Link. Du wirst dutzende Male darauf zurückgreifen. Bewahre das Passwort nicht im Klartext in geteilten Dokumenten auf.

Grundbegriffe: Das solltest du vorher verstehen

Hier ein paar Begriffe, ohne die die nächsten Schritte zu Magie werden. Lesen ist Pflicht, auch wenn du glaubst, alles zu kennen.

Proxy-Server

Das ist der Vermittler zwischen deinem Mac und dem Internet. Statt direkt zur Website zu gehen, wandert deine Anfrage erst zum Proxy-Server und von dort zur Website. Die Website sieht die IP des Proxys, nicht deine. Ein mobiler Proxy unterscheidet sich darin, dass seine IP einem Mobilfunkanbieter gehört und du für Websites wie ein normaler Smartphone-Nutzer aussiehst.

HTTP-Proxy und SOCKS5-Proxy

Das sind zwei verschiedene Arten, mit dem Proxy-Server zu sprechen. HTTP-Proxy versteht Web-Traffic, arbeitet mit Websites und den meisten Apps. In macOS ist er in zwei Schalter aufgeteilt: Web-Proxy (HTTP) für normale Websites und Sicherer Web-Proxy (HTTPS) für verschlüsselte Websites. In der Praxis trägt man in beide Felder dieselbe Adresse und denselben Port ein.

SOCKS5-Proxy arbeitet tiefer, auf Verbindungsebene, und leitet jeden Traffic weiter, nicht nur Web. Er ist nützlich für das Terminal, Messenger, Spiele. Wichtige macOS-Eigenheit: Die Systemeinstellungen erlauben Login und Passwort für SOCKS, aber viele Apps unterstützen diese Authentifizierung über den System-SOCKS nicht. Deshalb nutzen wir in den Systemeinstellungen HTTP und lassen SOCKS5 für Terminal und einzelne Programme.

System-Proxy

Das sind Einstellungen, die macOS für ein bestimmtes Netzwerk-Interface speichert. Safari, Chrome, Mail, App Store und die meisten Swift- und Objective-C-Apps lesen sie automatisch. Aber nicht alle. Programme in Python, Go, Node.js sowie klassische Unix-Utilities wie curl und git ignorieren die Systemeinstellungen. Sie schauen auf Umgebungsvariablen.

Umgebungsvariablen

Das sind benannte Werte, die in deiner Terminal-Sitzung leben. Zum Beispiel sagt die Variable http_proxy den Utilities: Schicke den gesamten HTTP-Traffic genau dorthin. Variablen existieren nur im geöffneten Terminal-Fenster, es sei denn, du schreibst sie in die Shell-Konfigurationsdatei. Dazu kommt ein eigener Schritt.

Ausnahmeliste

In macOS heißt sie Diese Hosts und Domains nicht über Proxy verwenden. Alle Adressen aus dieser Liste schickt das System direkt, am Proxy vorbei. Standardmäßig stehen dort schon *.local und 169.254/16, die für das lokale Netzwerk zuständig sind und nicht gelöscht werden dürfen. Das Problem beginnt, wenn zu viele Masken in die Liste geraten oder wenn du erwartest, dass die Ausnahmen im Terminal greifen. Werden sie nicht: Das Terminal hat seine eigene Liste, die Variable no_proxy. All das schauen wir uns an.

Netzwerkdienst

So nennt macOS jedes Interface: WLAN, Ethernet, Thunderbolt Bridge, iPhone USB. Der Proxy wird für jeden Dienst separat eingestellt. Wenn du WLAN konfiguriert hast und dann ein Kabel anschließt, funktioniert der Proxy nicht mehr. Das ist eine der häufigsten Ursachen für die Frage, warum der Proxy auf macOS mal läuft und mal nicht.

Schritt 1: Proxy-Daten vor der Systemkonfiguration prüfen

Ziel dieser Etappe: Sicherstellen, dass der Proxy lebt und Login und Passwort korrekt sind. Das erspart eine halbe Stunde Fehlersuche in den Einstellungen, wenn das Problem ein Tippfehler im Passwort war.

Geprüft wird mit curl. Dieses Tool ist bereits in macOS enthalten, nichts muss installiert werden.

  1. Öffne das Terminal, falls noch nicht geschehen.
  2. Nimm die Proxy-Daten aus deiner Karte. Als Beispiel nutzen wir fiktive Werte: Host proxy.example.net, HTTP-Port 10000, SOCKS5-Port 10001, Login user123, Passwort pass456. Setze deine echten Daten ein statt dieser.
  3. Gib den Befehl zur Prüfung des HTTP-Ports ein und drücke Enter:
curl -x http://user123:pass456@proxy.example.net:10000 https://ifconfig.me

Was hier steht: Der Schalter -x teilt curl die Proxy-Adresse mit. Danach kommt das Protokoll http, dann Login, Doppelpunkt, Passwort, das At-Zeichen, Host, Doppelpunkt, Port. Zum Schluss die Adresse des Dienstes, der als Antwort die IP zurückgibt, von der die Anfrage kam.

  1. Nach 1–3 Sekunden erscheint im Terminal eine IP-Adresse. Das ist die IP deines mobilen Proxys. Unterscheidet sie sich von der, die du bei der Vorbereitung notiert hast, funktioniert alles.
  2. Prüfe nun den SOCKS5-Port mit demselben Befehl, nur Protokoll und Port geändert:
curl -x socks5h://user123:pass456@proxy.example.net:10001 https://ifconfig.me

Achte auf das h in socks5h. Es bedeutet, dass Domainnamen auf der Proxy-Seite aufgelöst werden, nicht auf deinem Mac. Für mobile Proxys ist das die richtige Variante: So hinterlässt du keine DNS-Anfragen bei deinem Heim-Provider.

Achtung: Enthält das Passwort Sonderzeichen wie At, Doppelpunkt, Slash, Raute, Fragezeichen oder Prozent, müssen sie kodiert werden. At wird zu %40, Doppelpunkt zu %3A, Raute zu %23, Fragezeichen zu %3F, Prozent zu %25. Sonst zerlegt curl die Zeichenkette falsch und denkt, das Passwort sei zu früh zu Ende.

Mögliche Probleme in diesem Schritt

  • Antwort Received HTTP code 407 from proxy after CONNECT. Der Proxy lehnt die Authentifizierung ab. Prüfe Login und Passwort, achte auf Sonderzeichen. Stelle sicher, dass im Anbieter-Portal nicht IP-Autorisierung statt Login und Passwort aktiv ist.
  • Antwort Failed to connect oder Connection timed out. Falscher Host oder Port, oder der Proxy ist aus. Vergleiche mit dem Anbieter-Portal. Probiere einen anderen Port.
  • Der Befehl hängt ohne Ausgabe. Warte 30 Sekunden. Mobilfunknetze sind manchmal langsam. Wenn nichts passiert, drücke Control und C zum Abbrechen und prüfe die Daten.

Prüfung: Beide curl-Befehle haben eine IP zurückgegeben, die sich von deiner Heim-IP unterscheidet. Du kannst weitermachen. Wenn mindestens einer nicht funktioniert hat, ist Weitermachen sinnlos: Das System würde dieselben Daten nutzen.

Schritt 2: Proxy über die macOS-Systemeinstellungen einrichten

Ziel dieser Etappe: Safari, Chrome und alle Apps, die den System-Proxy respektieren, über deinen mobilen Proxy ins Internet bringen.

Den richtigen Bildschirm öffnen

  1. Klicke auf das Apple-Symbol oben links und wähle Systemeinstellungen.
  2. Klicke in der linken Spalte auf WLAN, wenn du kabellos verbunden bist. Bei Kabel: Netzwerk, dann Ethernet.
  3. Finde den Namen deines Netzwerks. Rechts daneben gibt es einen Knopf Details mit drei Punkten oder Beschriftung. Klicke ihn.
  4. Es öffnet sich ein Fenster mit Verbindungsparametern. Wähle in der linken Spalte den Punkt Proxys. Er steht ganz unten in der Liste, nach TCP/IP, DNS und WINS.

Du siehst eine Liste von Schaltern: Proxys automatisch ermitteln, Proxy-Konfigurationsdatei, Web-Proxy (HTTP), Sicherer Web-Proxy (HTTPS), FTP-Proxy, SOCKS-Proxy, Streaming-Proxy (RTSP), Gopher-Proxy. Unten das Feld Diese Hosts und Domains nicht über Proxy verwenden.

Hast du ein älteres macOS, in dem die Systemeinstellungen wie ein Icon-Raster aussehen, ist der Weg: Systemeinstellungen, Netzwerk, wähle links das Interface, Knopf Erweitert, Reiter Proxys. Danach deckt sich alles.

HTTP-Proxy aktivieren

  1. Klicke auf den Schalter Web-Proxy (HTTP). Er wird blau, darunter erscheinen Eingabefelder.
  2. Trage im Feld Server den Host deines Proxys ein, zum Beispiel proxy.example.net. Ohne http://, ohne Slashes, nur Host.
  3. Trage im Feld Port rechts den HTTP-Port ein, zum Beispiel 10000.
  4. Aktiviere den Schalter Proxy-Server erfordert Passwort.
  5. Trage im Feld Benutzername den Login ein. Im Feld Passwort das Passwort. Hier musst du Sonderzeichen nicht kodieren, gib sie einfach ein.

HTTPS-Proxy aktivieren

Die meisten Websites laufen heute über HTTPS, deshalb ist dieser Punkt Pflicht. Ohne ihn geht verschlüsselter Traffic direkt raus, und du wunderst dich, warum manche Websites den Proxy sehen und andere deine echte IP.

  1. Klicke auf den Schalter Sicherer Web-Proxy (HTTPS).
  2. Trage denselben Host und denselben Port ein wie für HTTP. Mobile Proxys verarbeiten beide Traffic-Arten auf einem Port.
  3. Aktiviere Proxy-Server erfordert Passwort und gib Login und Passwort erneut ein.

Zum SOCKS-Proxy und den übrigen Schaltern

Lass den Schalter SOCKS-Proxy in den Systemeinstellungen aus, wenn HTTP und HTTPS aktiv sind. Der Grund: Bei aktivem System-SOCKS bevorzugen manche Apps diesen, und nicht alle unterstützen die Authentifizierung über System-SOCKS. Das Ergebnis: Einige Programme verlieren den Netzzugang. FTP, RTSP und Gopher musst du nicht anfassen, das sind veraltete Protokolle. Automatische Ermittlung und Proxy-Konfigurationsdatei lässt du ebenfalls aus, sonst können sie deine manuellen Werte überschreiben.

Speichern

  1. Klicke auf OK in der rechten unteren Ecke des Fensters.
  2. Wenn das System nach deinem Mac-Benutzerpasswort fragt, gib es ein. Das ist normal: Netzwerkeinstellungen ändern erfordert Adminrechte.
  3. Schließe Safari oder Chrome vollständig und öffne sie neu. Browser cachen Proxy-Einstellungen beim Start.

Tipp: Bei der ersten Anfrage über den Proxy kann macOS ein Systemfenster mit der Aufforderung zeigen, Login und Passwort für den Proxy einzugeben, auch wenn du sie bereits eingetragen hast. Gib die Daten ein und setze den Haken Im Schlüsselbund speichern. Danach erscheint das Fenster nicht mehr.

Prüfung: Öffne in Safari einen IP-Check-Dienst. Die Adresse sollte mit der übereinstimmen, die der curl-Befehl in Schritt 1 zurückgegeben hat. Prüfe auch die Seite zur Anbieter-Erkennung: Es sollte ein Mobilfunkanbieter angezeigt werden, nicht dein Heim-Provider.

Mögliche Probleme

  • Websites öffnen überhaupt nicht. Prüfe, dass du HTTP und HTTPS aktiviert hast, nicht FTP oder SOCKS. Prüfe den Port. Schalte beide Schalter temporär aus und stelle sicher, dass das Internet zurückkommt: So weißt du, dass es an den Proxy-Einstellungen liegt, nicht am Netzwerk.
  • Ständig erscheint das Passwortfenster. Das Passwort ist falsch eingegeben oder enthält nach dem Kopieren ein Leerzeichen am Ende. Leere das Feld und gib das Passwort manuell neu ein.
  • Die IP hat sich nicht geändert. Wahrscheinlich hast du das falsche Interface konfiguriert. Gehe zurück in den Bereich Netzwerk und prüfe, welcher Dienst als Verbunden markiert ist.

Schritt 3: Die Ausnahmeliste richtig einstellen

Ziel dieser Etappe: Verstehen, welchen Traffic das System am Proxy vorbeischickt, und die Liste so einstellen, dass lokale Dienste funktionieren und externer Traffic nicht abfließt.

Das Feld Diese Hosts und Domains nicht über Proxy verwenden steht unten auf dem Proxy-Bildschirm. Standardmäßig steht dort: *.local, 169.254/16. Viele Nutzer schauen entweder gar nicht hin oder fangen an, alles Mögliche einzutragen.

Die Liste lesen

  • *.local bedeutet alle Adressen, die auf .local enden. Das sind Geräte in deinem Heimnetz: Drucker, Netzlaufwerk, andere Macs. Sie lassen sich über einen externen Proxy physisch nicht erreichen, die Eintragung ist nötig.
  • 169.254/16 bedeutet der Bereich der Dienst-Adressen, die der Mac sich selbst gibt, wenn er keine Adresse vom Router bekommen hat. Ebenfalls lokale Sache.
  • Einträge werden durch Kommas getrennt. Leerzeichen nach Kommas sind erlaubt.
  • Der Stern ersetzt jeden beliebigen Teil eines Namens. Der Eintrag *.example.com schließt alle Subdomains von example.com aus, aber nicht example.com selbst. Dafür braucht es einen eigenen Eintrag.
  • Man kann IP-Adressen und Subnetze im Format Adresse/Maske angeben, zum Beispiel 192.168.0.0/16 für das gesamte Heimnetz.

Was du hinzufügen solltest

  1. Klicke in das Ausnahmenfeld nach dem letzten Eintrag.
  2. Füge durch Komma getrennt localhost und 127.0.0.1 hinzu. Ohne sie versuchen lokale Webserver von Entwicklern und Admin-Panels auf deinem Mac, durch den mobilen Proxy zu gehen, und schlagen fehl.
  3. Wenn du Heimgeräte per IP nutzt, füge dein lokales Subnetz hinzu. Meist 192.168.0.0/16 oder 10.0.0.0/8. Deine lokale Adresse siehst du im Reiter TCP/IP im selben Fenster.
  4. Klicke auf OK.

Die endgültige Liste sieht für die meisten Nutzer so aus: *.local, 169.254/16, localhost, 127.0.0.1, 192.168.0.0/16.

Was du nicht hinzufügen solltest

Hier beginnt das, was in der Überschrift Umgehen der Ausnahmen genannt wird. Es geht um Situationen, in denen Traffic am Proxy vorbeigeht, nicht weil du es wolltest, sondern weil die Liste ungenau geführt wird.

  • Trage keinen einzelnen Stern oder *.com ein. Eine solche Maske deaktiviert den Proxy praktisch für das gesamte Internet, während die Schalter blau bleiben und du glaubst, alles funktioniert.
  • Trage keine Domains von Diensten ein, mit denen du arbeitest. Wenn du *.facebook.com hinzufügst, um das Laden zu beschleunigen, sieht die Website deine echte IP. Für Multi-Accounting-Aufgaben ist das kritisch.
  • Trage nicht den Host des Proxys selbst ein. Das ergibt keinen Sinn: Die Verbindung zum Proxy läuft ohnehin direkt.
  • Lösche nicht *.local und 169.254/16. AirDrop, Drucken und Router-Zugriff brechen.

Achtung: Die Ausnahmeliste in den Systemeinstellungen wirkt nur auf Apps, die den System-Proxy nutzen. Terminal, curl, git und Python-Skripte sehen sie nicht. Sie haben ihre eigene Liste, die Variable no_proxy, und die wird separat konfiguriert. Wir kommen in Schritt 5 dazu. Wenn du erwartest, dass ein Eintrag in der Systemliste ein Skript beeinflusst, wirst du enttäuscht.

Tipp: Öffne die Ausnahmeliste regelmäßig und prüfe sie mit den Augen. Manche Firmen-Utilities und Geräteverwaltungs-Agenten tragen bei der Installation ihre Domains ein. Eine überflüssige Maske wie *.com in zehn Sekunden zu entdecken ist einfacher, als eine Woche nach der Ursache für ein IP-Leck zu suchen.

Prüfung: Öffne im Browser die Adresse http://localhost oder eine lokale Seite, die du hast. Sie sollte sofort ohne Proxy-Fehler öffnen. Öffne dann einen externen IP-Check-Dienst: Er sollte weiterhin die IP des mobilen Proxys zeigen.

Schritt 4: Proxy per Terminal-Befehl networksetup steuern

Ziel dieser Etappe: Lernen, den System-Proxy mit einem Befehl ein-, aus- und umzuschalten, ohne Maus und ohne zehn Klicks in den Einstellungen. Diese Fähigkeit zahlt sich nach einem Monat aus.

In macOS gibt es das eingebaute Tool networksetup. Es macht genau dasselbe wie die Systemeinstellungen, nur über die Kommandozeile. Alles, was du in Schritt 2 konfiguriert hast, lässt sich mit einer Zeile wiederholen, ändern oder rückgängig machen.

Den genauen Namen des Netzwerkdienstes herausfinden

  1. Gib im Terminal den Befehl ein und drücke Enter:
networksetup -listallnetworkservices

Du siehst eine Liste wie: Wi-Fi, Ethernet, Thunderbolt Bridge, iPhone USB. Finde den, über den du verbunden bist. In den Befehlen nutzen wir Wi-Fi. Wenn dein Dienst anders heißt, setze seinen Namen ein. Enthält der Name ein Leerzeichen, etwa Thunderbolt Bridge, setze ihn in doppelte Anführungszeichen.

Aktuelle Einstellungen ansehen

networksetup -getwebproxy Wi-Fi

Als Antwort siehst du vier Zeilen: Enabled: Yes oder No, Server, Port, Authenticated Proxy Enabled. Wenn du Schritt 2 ausgeführt hast, ist Enabled gleich Yes und Server und Port stimmen mit den Eingaben überein. Analog für HTTPS:

networksetup -getsecurewebproxy Wi-Fi

HTTP- und HTTPS-Proxy mit einem Befehl aktivieren

Format: networksetup, Aktion, Dienst, Host, Port, Authentifizierung aktivieren, Login, Passwort.

networksetup -setwebproxy Wi-Fi proxy.example.net 10000 on user123 pass456
networksetup -setsecurewebproxy Wi-Fi proxy.example.net 10000 on user123 pass456

Gib beide Befehle nacheinander ein. Danach kann das System nach dem Mac-Benutzerpasswort fragen. Gib es ein, die Zeichen werden nicht angezeigt, das ist normal. Drücke Enter.

Das Wort on nach dem Port aktiviert die Authentifizierung. Hat dein Proxy IP-Autorisierung statt Login, schreibe off und lasse Login und Passwort weg.

Proxy aus- und einschalten ohne Verlust der Einstellungen

Das nützlichste Befehlspaar. Es löscht Host und Port nicht, sondern bewegt nur den Schalter:

networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off

Zum Wiedereinschalten ersetzt du off durch on. So versetzt du den Mac in zwei Sekunden in den Direktverbindungsmodus und zurück.

Die Ausnahmeliste über das Terminal steuern

Aktuelle Liste ansehen:

networksetup -getproxybypassdomains Wi-Fi

Eine neue Liste komplett setzen. Der Befehl ersetzt alle Einträge, deshalb listest du den vollen Satz durch Leerzeichen getrennt auf:

networksetup -setproxybypassdomains Wi-Fi "*.local" "169.254/16" localhost 127.0.0.1 "192.168.0.0/16"

Einträge mit Stern und Slash setzen wir in Anführungszeichen, damit die Shell sie nicht zu interpretieren versucht. Die Liste komplett leeren kann man mit dem Wort Empty statt der Domains, aber denk dran: Dann gehen lokale Adressen durch den Proxy und funktionieren nicht mehr.

Universeller Anzeigebefehl

Das Tool scutil zeigt alle Proxy-Einstellungen an einem Ort, inklusive Ausnahmen:

scutil --proxy

Suche die Zeilen HTTPEnable, HTTPProxy, HTTPPort, HTTPSEnable, ExceptionsList. Der Wert 1 bedeutet an, 0 aus. Genau diesen Befehl haben wir für das Backup genutzt.

Tipp: Öffne die Systemeinstellungen auf dem Proxy-Bildschirm und führe daneben einen beliebigen networksetup-Befehl im Terminal aus. Du siehst, wie sich die Schalter in Echtzeit ändern. Das ist die beste Methode, um zu überzeugen, dass Terminal und grafische Oberfläche dieselben Daten steuern.

Mögliche Probleme

  • Fehler: Wi-Fi is not a recognized network service. Der Dienst heißt anders. Führe networksetup -listallnetworkservices aus und kopiere den genauen Namen.
  • Der Befehl lief durch, aber in den Einstellungen hat sich nichts geändert. Schließe das Systemeinstellungen-Fenster und öffne es erneut, es aktualisiert nicht immer sofort.
  • Es fragt nach dem Passwort und schreibt Sorry, try again. Eingegeben wird das Mac-Benutzerpasswort, nicht das Proxy-Passwort. Zeichen werden nicht angezeigt, einfach tippen und Enter drücken.

Prüfung: Führe networksetup -setwebproxystate Wi-Fi off aus, aktualisiere den IP-Check im Browser, du siehst deine Heim-IP. Führe denselben Befehl mit on aus, aktualisiere die Seite, du siehst die Proxy-IP. Wenn das Umschalten in beide Richtungen funktioniert, ist diese Etappe bestanden.

Schritt 5: Proxy für curl, git, Homebrew, pip und npm einrichten

Ziel dieser Etappe: Kommandozeilen-Tools über den Proxy arbeiten lassen. Genau hier fließt der meiste Traffic ab, weil diese Programme nicht in die Systemeinstellungen schauen.

Warum der System-Proxy hier nicht funktioniert

Utilities wie curl, wget, git, pip, npm, brew sind für den Einsatz in allen Unix-Systemen geschrieben. Sie kennen macOS und seine Systemeinstellungen nicht. Stattdessen lesen sie Umgebungsvariablen mit den Namen http_proxy, https_proxy, all_proxy und no_proxy. Sind die Variablen nicht gesetzt, geht der Traffic direkt raus. Die Schalter in den Einstellungen können so blau sein, wie sie wollen.

Temporäres Einschalten im aktuellen Terminal-Fenster

Gib drei Befehle nacheinander ein:

export http_proxy=http://user123:pass456@proxy.example.net:10000
export https_proxy=http://user123:pass456@proxy.example.net:10000
export no_proxy=localhost,127.0.0.1,*.local

Der erste leitet HTTP-Traffic zum Proxy. Der zweite leitet HTTPS-Traffic dorthin. Beachte: Im Wert von https_proxy steht trotzdem http, weil das das Protokoll für die Kommunikation mit dem Proxy ist, nicht mit der Website. Der dritte setzt die Ausnahmen für das Terminal. Das ist die separate Liste, über die wir in Schritt 3 gesprochen haben.

Manche Programme lesen Variablen nur in Großbuchstaben. Um nicht zu raten, setze sie auch:

export HTTP_PROXY=$http_proxy HTTPS_PROXY=$https_proxy NO_PROXY=$no_proxy

Jetzt prüfe ohne den Schalter -x:

curl https://ifconfig.me

Kam die Proxy-IP zurück, funktionieren die Variablen. Alle Programme, die aus diesem Terminal-Fenster gestartet werden, gehen nun über den mobilen Proxy. Schließt du das Fenster, verschwinden die Variablen.

Dauerhaftes Einschalten über die Shell-Konfigurationsdatei

In modernen macOS ist die Standardshell zsh, ihre Konfiguration liegt in der Datei .zshrc im Home-Verzeichnis. Alles, was dort steht, wird beim Öffnen jedes neuen Terminal-Fensters ausgeführt.

  1. Öffne die Datei im Editor nano mit dem Befehl:
nano ~/.zshrc
  1. Gehe mit den Pfeiltasten ans Ende der Datei.
  2. Füge die export-Zeilen aus dem vorigen Abschnitt ein.
  3. Drücke Control und O, dann Enter zum Speichern. Drücke Control und X zum Beenden.
  4. Wende die Änderungen ohne Neustart an:
source ~/.zshrc

Achtung: In .zshrc liegt das Passwort im Klartext. Wenn der Mac geteilt wird oder du die Datei in einer Cloud-Synchronisierung hast, denk zweimal nach. Eine Kompromisslösung steht im Block zu fortgeschrittenen Einstellungen: Aliase, die den Proxy per Kurzbefehl einschalten statt automatisch.

Git

Git liest Umgebungsvariablen, aber zuverlässiger ist die Einstellung in seiner Konfiguration:

git config --global http.proxy http://user123:pass456@proxy.example.net:10000

Ausschalten:

git config --global --unset http.proxy

Diese Einstellung beeinflusst clone-, pull- und push-Operationen über HTTPS. Für SSH-Zugriff auf Repositories braucht es einen anderen Ansatz, der steht im fortgeschrittenen Block.

Homebrew

Brew verlässt sich vollständig auf Umgebungsvariablen. Wenn du sie in .zshrc gesetzt hast, ist nichts weiter nötig. Prüfe mit brew update: Die Aktualisierung sollte ohne Verbindungsfehler durchlaufen.

pip

Der Python-Installer liest ebenfalls Umgebungsvariablen. Für einen einmaligen Lauf über den Proxy ohne Variablen nutze den Schalter:

pip install --proxy http://user123:pass456@proxy.example.net:10000 requests

npm

Der Node.js-Paketmanager speichert Einstellungen separat:

npm config set proxy http://user123:pass456@proxy.example.net:10000
npm config set https-proxy http://user123:pass456@proxy.example.net:10000

Ausschalten: npm config delete proxy und npm config delete https-proxy.

SOCKS5 für das Terminal

Wenn du Terminal-Traffic über den SOCKS5-Port leiten willst, setze statt http_proxy und https_proxy eine Variable:

export all_proxy=socks5h://user123:pass456@proxy.example.net:10001

Curl und viele Utilities verstehen sie. Aber nicht alle: git liest all_proxy über HTTPS nicht immer, und pip versteht SOCKS ohne zusätzliches Paket nicht. Für Einsteiger empfehlen wir die HTTP-Variante.

Tipp: Füge in .zshrc die Zeile alias myip='curl -s https://ifconfig.me; echo' hinzu, danach tippst du myip, um in einer Sekunde die aktuelle Terminal-IP zu sehen. Das spart dutzende Prüfungen pro Tag.

Prüfung: Öffne ein neues Terminal-Fenster. Führe curl https://ifconfig.me und git config --global --get http.proxy aus. Der erste Befehl gibt die Proxy-IP, der zweite zeigt die Proxy-Adresse. Also sind die Tools konfiguriert und die Einstellungen überstehen einen Neustart.

Schritt 6: Traffic aufspüren, der am Proxy vorbeigeht, und beheben

Ziel dieser Etappe: Sicherstellen, dass keine App aus deinem Arbeits-Set ungewollt direkt ins Internet geht. Hier systematisieren wir alle Ursachen für Lecks und prüfen jede einzelne.

Ursache 1: App mit eigenen Proxy-Einstellungen

Manche Programme ignorieren den System-Proxy und Umgebungsvariablen, weil sie eigene Einstellungen haben. Klassische Beispiele: Telegram Desktop, Firefox, Discord, einige Mail-Clients, Torrent-Clients, Antidetect-Browser. Jedes hat in den Einstellungen einen Bereich Netzwerk oder Proxy.

  1. Erstelle eine Liste der Apps, mit denen du arbeitest.
  2. Öffne jede und suche den Netzwerk-Einstellungsbereich. Gibt es dort die Wahl System-Proxy-Einstellungen verwenden, wähle sie. Gibt es nur manuelle Eingabe, trage Host, Port, Login und Passwort ein.
  3. Prüfe die IP innerhalb der App, falls sie das erlaubt, oder über einen IP-Check, den du in dieser App öffnest.

Die Einstellungen konkreter Browser und Antidetect-Browser sind im Blog separat behandelt, hier wiederholen wir sie nicht. Wichtig ist das Prinzip: Bei jeder App musst du prüfen, woher sie ihren Proxy bezieht.

Ursache 2: App nicht aus dem Terminal gestartet

Umgebungsvariablen aus .zshrc wirken nur auf Programme, die aus dem Terminal gestartet werden. Startest du ein Skript per Doppelklick, über die Code-IDE oder den Scheduler, werden die Variablen nicht übernommen. Lösung: Setze den Proxy im Skript explizit, starte das Skript aus dem Terminal oder trage die Variablen in den Einstellungen deiner Code-IDE ein.

Ursache 3: Falscher Netzwerkdienst

Du hast WLAN konfiguriert, aber der Mac hat sich per Kabel verbunden, weil du eine Dockingstation eingesteckt hast. Oder umgekehrt. Die Prüfung ist einfach: networksetup -listallnetworkservices zeigt alle Dienste, und der Bereich Netzwerk in den Einstellungen hebt den aktiven hervor. Konfiguriere den Proxy für jeden Dienst, den du nutzt. Die networksetup-Befehle aus Schritt 4 musst du wiederholen, indem du Wi-Fi durch Ethernet ersetzt.

Ursache 4: Überflüssige Masken in der Ausnahmeliste

Wir haben das in Schritt 3 besprochen. Führe networksetup -getproxybypassdomains Wi-Fi aus und stelle sicher, dass kein einzelner Stern, keine Masken wie *.com, *.ru, *.net und keine Domains von Arbeitsdiensten dort stehen. Prüfe dasselbe in der Variablen no_proxy mit echo $no_proxy.

Ursache 5: IPv6

Wenn dein Heim-Provider eine IPv6-Adresse vergibt und der Proxy über IPv4 läuft, können manche Apps versuchen, direkt über IPv6 zu gehen. Bei System-Apps ist das selten, bei Utilities kommt es vor. Prüfe, dass der IP-Check keine lange Adresse mit Doppelpunkten zeigt. Zeigt er sie, öffne die Einstellungen des Dienstes, Reiter TCP/IP, und stelle IPv6 konfigurieren auf Nur lokale Verbindung.

Ursache 6: HTTPS an, HTTP aus, oder umgekehrt

In den Systemeinstellungen sind das zwei unabhängige Schalter. Vergisst du einen, fließt die Hälfte des Traffics ab. Führe scutil --proxy aus und stelle sicher, dass HTTPEnable und HTTPSEnable beide 1 sind.

Ursache 7: Browser-Cache und offene Verbindungen

Ein Browser, der vor der Änderung der Einstellungen gestartet wurde, kann alte Verbindungen noch einige Minuten halten. Schließe die App vollständig mit Command und Q, nicht mit dem Kreuz, und öffne sie neu.

Tipp: Mach einen Kontrollrundgang. Öffne einen IP-Check in Safari, in Chrome, über curl im Terminal und innerhalb jeder Arbeits-App. Notiere vier Ergebnisse nebeneinander. Wenn alle mit der IP des mobilen Proxys übereinstimmen, gibt es keine Lecks. Wiederhole diesen Rundgang nach jedem Proxy-Wechsel oder Systemupdate.

Prüfung: Alle Kontrollpunkte aus der Liste oben zeigen dieselbe IP des mobilen Proxys. Lokale Adressen öffnen direkt. Kein Schalter ist versehentlich aus geblieben.

Ergebnis prüfen: finale Checkliste

Gehe die Liste durch und hake jeden Punkt ab. Wenn einer nicht erfüllt ist, gehe zum entsprechenden Schritt zurück.

Systemebene

  • In den Systemeinstellungen auf dem Proxy-Bildschirm sind Web-Proxy (HTTP) und Sicherer Web-Proxy (HTTPS) aktiv, beide mit demselben Host und Port.
  • Die Authentifizierung ist aktiv, Login und Passwort gespeichert, das Passwortfenster erscheint nicht mehr.
  • Safari zeigt die IP des mobilen Proxys und einen Mobilfunkanbieter.
  • Die Ausnahmeliste enthält *.local, 169.254/16, localhost, 127.0.0.1 und dein lokales Subnetz. Überflüssige Masken gibt es nicht.
  • Lokale Adressen öffnen ohne Fehler.

Terminal

  • Der Befehl networksetup -getwebproxy Wi-Fi zeigt Enabled: Yes und den richtigen Server.
  • Die Ein- und Ausschaltbefehle über networksetup funktionieren in beide Richtungen.
  • In einem neuen Terminal-Fenster gibt echo $http_proxy die Proxy-Adresse aus.
  • curl https://ifconfig.me ohne den Schalter -x gibt die Proxy-IP zurück.
  • echo $no_proxy zeigt die Liste der lokalen Ausnahmen.

Tools

  • git config --global --get http.proxy gibt die Proxy-Adresse zurück.
  • brew update läuft ohne Verbindungsfehler durch.
  • npm config get proxy gibt die Proxy-Adresse zurück, wenn du mit Node.js arbeitest.
  • Alle Arbeits-Apps mit eigenen Netzwerkeinstellungen sind auf den System-Proxy umgestellt oder manuell konfiguriert.

Wie du alles komplett testest

  1. Schalte den System-Proxy mit networksetup -setwebproxystate Wi-Fi off und networksetup -setsecurewebproxystate Wi-Fi off aus.
  2. Aktualisiere den IP-Check im Browser. Deine Heim-IP sollte erscheinen.
  3. Führe curl https://ifconfig.me im Terminal aus. Es sollte die Proxy-IP bleiben, weil das Terminal Variablen nutzt, nicht die Systemeinstellungen. Das bestätigt, dass die Ebenen unabhängig sind.
  4. Schalte den System-Proxy wieder ein. Aktualisiere den Browser. Die Proxy-IP sollte zurückkehren.
  5. Öffne ein neues Terminal-Fenster, führe unset http_proxy https_proxy aus und dann erneut curl. Jetzt zeigt das Terminal die Heim-IP. Schließe das Fenster: Im nächsten werden die Variablen wieder aus .zshrc übernommen.

Wenn jeder Übergang das erwartete Ergebnis geliefert hat, kontrollierst du den Proxy auf macOS auf allen Ebenen vollständig. Das war das Ziel.

Typische Fehler und Lösungen

Proxy aktiv, aber die IP ändert sich nicht

Ursache: Falsches Netzwerk-Interface konfiguriert, oder nur einer der Schalter HTTP und HTTPS aktiv, oder der Browser nicht neu gestartet.

Lösung: Prüfe den aktiven Dienst im Bereich Netzwerk, führe scutil --proxy aus und stelle sicher, dass beide Enable gleich 1 sind, schließe den Browser vollständig mit Command und Q.

Ständig erscheint ein Fenster mit der Proxy-Passwortabfrage

Ursache: Fehler in Login oder Passwort, ein Leerzeichen nach dem Einfügen oder alte Daten vom vorigen Proxy im Schlüsselbund.

Lösung: Leere die Felder und gib die Daten manuell neu ein. Öffne die App Schlüsselbundverwaltung, finde den Eintrag mit dem Proxy-Host und lösche ihn, gib die Daten erneut ein und setze den Haken Speichern.

Ein Teil der Websites öffnet über den Proxy, ein Teil direkt

Ursache: Nur HTTP oder nur HTTPS aktiv, oder eine breite Maske in der Ausnahmeliste.

Lösung: Aktiviere beide Schalter. Prüfe die Ausnahmeliste mit networksetup -getproxybypassdomains und entferne alles, was nicht zum lokalen Netzwerk gehört.

Das Terminal ignoriert den Proxy, obwohl das System konfiguriert ist

Ursache: Kommandozeilen-Tools lesen die Systemeinstellungen nicht. Die Umgebungsvariablen sind nicht gesetzt oder in einem anderen Fenster.

Lösung: Schreibe die export-Zeilen in .zshrc und führe source ~/.zshrc aus. Prüfe echo $http_proxy.

Fehler 407 Proxy Authentication Required

Ursache: Der Proxy akzeptiert Login und Passwort nicht. Oft liegt es an Sonderzeichen im Passwort innerhalb der URL-Zeichenkette.

Lösung: Kodiere die Sonderzeichen: At als %40, Doppelpunkt als %3A, Raute als %23. Stelle sicher, dass im Anbieter-Portal nicht IP-Autorisierung aktiv ist.

Lokale Dienste, Drucker oder Router funktionieren nicht mehr

Ursache: *.local und 169.254/16 wurden aus der Ausnahmeliste entfernt, oder localhost und das lokale Subnetz fehlen.

Lösung: Stelle die Liste mit networksetup -setproxybypassdomains und dem vollen Satz Einträge aus Schritt 3 wieder her.

Nach einem Mac-Neustart ist der Proxy im Terminal weg

Ursache: Die Variablen wurden nur per export im offenen Fenster gesetzt, nicht in .zshrc.

Lösung: Öffne nano ~/.zshrc, füge die Zeilen hinzu und speichere. Bei einer anderen Shell, etwa bash, heißt die Datei .bash_profile.

Alles lief, und nach einem macOS-Update ist es kaputt

Ursache: Große Systemupdates setzen Netzwerkdienst-Einstellungen manchmal zurück oder benennen sie um.

Lösung: Öffne die Datei proxy_backup.txt vom Schreibtisch, vergleiche die Werte und wiederhole Schritt 4 mit den networksetup-Befehlen. Prüfe die Dienstliste: Vielleicht ist ein neuer dazugekommen.

Langsames Laden von Seiten

Ursache: Das ist normales Verhalten mobiler Proxys, das Mobilfunknetz ist langsamer als der Heim-Provider. Manchmal liegt es aber daran, dass HTTP-Proxy und SOCKS gleichzeitig an sind und Apps zweimal versuchen, eine Verbindung aufzubauen.

Lösung: Schalte den System-SOCKS aus, lass nur HTTP und HTTPS. Ist die Geschwindigkeit trotzdem niedrig, versuche einen IP-Wechsel über den Rotations-Link.

Zusätzliche Möglichkeiten für fortgeschrittene Nutzer

Die Grundeinrichtung steht. Jetzt ein paar Techniken, die manuelle Arbeit in ein bequemes System verwandeln.

Netzwerkumgebungen: zwei Profile, ein Umschalten

macOS erlaubt mehrere Sätze von Netzwerkeinstellungen, zwischen denen man komplett umschalten kann. Das ist bequemer, als jedes Mal die Schalter zu bewegen.

  1. Öffne die Systemeinstellungen, Bereich Netzwerk.
  2. Klicke auf den Knopf mit drei Punkten unten in der Dienstliste und wähle Umgebungen, dann Umgebungen bearbeiten.
  3. Klicke auf Plus, nenne die neue Umgebung Proxy. Klicke auf Fertig.
  4. Wähle die erstellte Umgebung in der Liste. Konfiguriere den Proxy für Wi-Fi und Ethernet wie in Schritt 2.
  5. Lass die ursprüngliche Umgebung Automatisch ohne Proxy.

Jetzt kannst du über das Apple-Menü, Punkt Umgebung, umschalten oder per Terminal-Befehl:

networksetup -switchtolocation Прокси

Und zurück: networksetup -switchtolocation Automatisch. Alle Dienste schalten gleichzeitig um, Fehler mit dem falschen Interface gibt es nicht.

Aliase zum schnellen Ein- und Ausschalten im Terminal

Wenn du den Proxy nicht dauerhaft aktiv lassen willst, füge in .zshrc zwei Funktionen statt direkter export-Zeilen hinzu:

proxyon() { export http_proxy=http://user123:pass456@proxy.example.net:10000; export https_proxy=$http_proxy; export no_proxy=localhost,127.0.0.1,*.local; echo Proxy ON; }
proxyoff() { unset http_proxy https_proxy all_proxy no_proxy HTTP_PROXY HTTPS_PROXY; echo Proxy OFF; }

Nach source ~/.zshrc schaltet der Befehl proxyon den Proxy im aktuellen Fenster ein, proxyoff aus. Das Passwort steht weiterhin in der Datei, aber der Proxy wird nicht ohne deine Entscheidung aktiviert.

Ein Befehl für System und Terminal

Erweitere die Funktion proxyon um die Zeilen networksetup -setwebproxystate Wi-Fi on und networksetup -setsecurewebproxystate Wi-Fi on. Dann schaltet ein Befehl den Proxy sowohl für Browser als auch für das Terminal ein. Füge in proxyoff dieselben Befehle mit off hinzu. Das System fragt einmal pro Sitzung nach dem Administratorpasswort.

IP des mobilen Proxys aus dem Terminal wechseln

Die meisten Anbieter mobiler Proxys geben einen Link für den IP-Wechsel aus. Den kannst du per curl abrufen, ohne den Browser zu öffnen:

curl -s "https://адрес-ротации-из-личного-кабинета"

Verpacke ihn in eine Funktion newip und füge sie in .zshrc hinzu. Die Kombination newip, dann myip zeigt die neue Adresse in zwei Sekunden. Für Arbitrage-Spezialisten, die dutzende Prüfungen pro Tag durchziehen, ist das eine spürbare Zeitersparnis.

SSH über SOCKS5-Proxy

Wenn du dich per SSH mit Servern verbindest und die Verbindung über den mobilen Proxy laufen soll, füge in die Datei ~/.ssh/config einen Block ein:

Host myserver
 HostName 203.0.113.10
 ProxyCommand nc -X 5 -x proxy.example.net:10001 %h %p

Das Tool nc ist in macOS enthalten. Der Schalter -X 5 bedeutet SOCKS5, der Schalter -x setzt die Proxy-Adresse. Authentifizierung per Login und Passwort unterstützt nc nicht, deshalb eignet sich diese Methode für Proxys mit IP-Autorisierung.

PAC-Datei für flexible Regeln

Der Schalter Proxy-Konfigurationsdatei akzeptiert die Adresse einer PAC-Datei: ein JavaScript-Skript, das für jede Adresse entscheidet, ob sie über den Proxy oder direkt geht. So lassen sich komplexe Ausnahmen umsetzen, die sich mit Masken nicht ausdrücken lassen. Die Datei kann lokal liegen, angegeben als file:/

Über den Autor

Roman Melnikov

Roman Melnikov

Technical Writer and System Administrator

Berufserfahrung: Technical writer and DevOps engineer with 9 years of experience. Created over 50 detailed guides on system configuration and administration. His instructions helped thousands of professionals successfully solve technical tasks. Popular author on Habr and YouTube.
Ausbildung: Bauman Moscow State Technical University. Information Systems and Technologies
Expertise:
Technical Documentation DevOps System Administration Linux Docker and Kubernetes CI/CD Infrastructure Automation Cloud Technologies System Monitoring Bash and Python Scripting

Diesen Artikel teilen: