Ich bin in einem Netzwerk mit einem Proxy. Ich habe Maschinen, die hier und da viele Skripte verwenden, die über HTTP aufeinander zugreifen.
- Das Netzwerk ist 10.0.0.0/8.
Mein Proxy ist 10.1.1.1:81, also habe ich es entsprechend eingerichtet:
export http_proxy=http://10.1.1.1:81/
Ich möchte meinen eigenen Bereich ausschließen, um mit dem Proxy darauf zugreifen zu können. Ich habe versucht, eine beliebige Kombination zur Verfügung.
export no_proxy='10.*' export no_proxy='10.*.*.*' export no_proxy='10.0.0.0/8'
Keine der oben genannten Arbeiten!
Ich teste mit wget
und es wird immer versucht, den Proxy abzufragen, egal mit welcher IP-Adresse ich mich verbinden möchte.
- Da viele Skripte überall in allen Systemen liegen, ist die
--no-proxy
Option eigentlich keine Option. Ich möchte es systemweit einstellen.
bash
wget
curl
http-proxy
SamK
quelle
quelle
no_proxy
Umgebungsvariable zu setzen ? Was zum Teufel Linus Torvalds !!Antworten:
Sie sehen es falsch. Die
no_proxy
Umgebungsvariable listet die Domänensuffixe und nicht die Präfixe auf. Aus der Dokumentation :Für IPs haben Sie also zwei Möglichkeiten:
1) Fügen Sie jede IP vollständig hinzu:
2) Umbenennen
wget
inwget-original
und Schreiben eines Wrapper-Skripts (aufgerufenwget
), das die IP-Adresse des angegebenen URL-Hosts ermittelt und festlegt, ob der Proxy verwendet werden soll oder nicht:quelle
/etc/environment
Datei einfügen, kann dies Ihren Server beschädigen.info wget
sagt:Die Variable sollte daher eine Liste von Domänen enthalten , keine IP-Bereiche . Sie müssen geeignete lokale Aliase für Ihre lokalen Computer in den
/etc/hosts
Dateien einrichten .Bedenken Sie außerdem, dass das Festlegen einer Umgebungsvariablen nicht garantiert, dass ein Proxy verwendet wird oder nicht. Es ist nur eine Information , die möglicherweise von Programmen verwendet werden , die es unterstützen.
quelle
Nicht genau die richtige Lösung, aber sie könnte das Problem für Sie lösen. Wenn Sie davon ausgehen, dass für den Zugriff von außerhalb des Proxys DNS-Namen und nicht direkt IP-Adressen verwendet werden, können Sie Folgendes festlegen:
Soweit ich weiß, endet keine Top-Domain mit einer Nummer. Wenn dies der Fall ist, muss es sich um eine IP-Adresse handeln.
quelle
Hier ist ein etwas einfacherer (einzeiliger) Ansatz, der auf der Lösung von janmoesen basiert.
was auf der Grundlage von Cory Ringdahls Input weiter verbessert wurde:
sed verschluckt sich an allen Argumenten, die sich aus der Erweiterung von ergeben haben
10.1.{1..255}.{1..255}
, entweder in seinem Code oder in meinem. Wenn Sie also wirklich auf 256 * 256 IP-Adressen erweitern müssen, können Sie möglicherweise den Ansatz von Cory Ringdahl weiter anpassen. Wenn Sie jedoch nur 256 oder so benötigen, sollte einer der beiden für Sie perfekt funktionieren.Ich vermute, die Version, in der 2 Oktette erweitert sind, würde ungefähr so aussehen:
Aber iTerm gibt mir Fehler wegen zu langer Argumentlisten, daher kann ich nicht sicher sagen, ob es eine Lösung gibt, mit der das funktioniert ...
quelle
"export no_proxy=`echo 10.1.1.{1..254},`10.1.1.255"