Einen anderen Proxy für einen einzelnen Shell-Befehl verwenden
Stellen Sie einem Befehl Proxy-Variablen voran, wenn Sie eine vorübergehende Route wünschen, ohne die übergeordnete Shell zu ändern oder Startdateien zu bearbeiten.
Sie möchten, dass ein Download einen anderen Proxy verwendet, und danach soll alles wieder normal sein. Es ist nicht nötig, die Startdatei der Shell zu bearbeiten und zu hoffen, dass Sie daran denken, es rückgängig zu machen.
Für einen externen Befehl in einer POSIX-artigen Shell setzen Sie die Zuweisung vor den Befehl:
https_proxy=http://proxy.example:8080 curl https://example.com/
Verwenden Sie den HTTP-Endpunkt, der für diesen Download vorgesehen ist; die HTTP-Proxy-Liste bietet Kandidaten für erlaubte öffentliche Routen. Die Zuweisung wird der Umgebung dieses Befehls bereitgestellt. Seine Kindprozesse können den Wert erben, aber die Zuweisung ersetzt nach dem Ende des Befehls nicht den vorhandenen Wert der übergeordneten Shell.
Der Client entscheidet weiterhin, was gelesen wird
Shell-Syntax erzeugt eine Umgebung; sie erzwingt keine Netzwerkroute. Verwenden Sie die Variablennamen, die die Anwendung unterstützt. Vorhandene Bypass-Variablen, ausdrückliche Befehlsoptionen oder die eigene Konfiguration der Anwendung können das Ergebnis weiterhin beeinflussen.
Die Bash-Umgebungsdokumentation erklärt das Verhalten des Befehlspräfixes. Befehle, die Shell-Funktionen, spezielle Builtins oder Shell-Syntax sind, können zusätzliche Gültigkeitsregeln haben, deshalb verwendet das obige einfache Beispiel bewusst ein externes Programm.
Für mehrere Befehle eine Subshell verwenden
(
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080
command-one
command-two
)
Die Gruppe in Klammern läuft mit ihrer eigenen Shell-Umgebung. Ersetzen Sie die beispielhaften Befehlsnamen durch die Programme, die Sie ausführen möchten. Dieses Muster vermeidet die zerbrechliche Abfolge, einen alten Wert zu sichern, ihn zu überschreiben und ihn nach jedem möglichen Fehler von Hand wiederherzustellen.
Halten Sie Geheimnisse aus Beispielen heraus, die in die Shell-Historie kopiert werden. Denken Sie auch daran, dass sudo die Umgebung filtern kann; eine für den äußeren Befehl sichtbare Variable wird nicht automatisch über jede Privilegiengrenze weitergegeben. Vorübergehender Gültigkeitsbereich und die tatsächliche Proxy-Auswahl bleiben getrennte Fragen.