2017-02-28 3 views
0

Mein Arbeitsplatz verfügt über eine relativ komplizierte PAC Datei, um zu bestimmen, welcher Proxy HTTP (S) Datenverkehr verwendet werden soll, um zu verschiedenen internen und externen Netzwerken zu gelangen. Dies ist in Ordnung für Chrome, Safari usw., aber schrecklich für Kommandozeilen-Tools (curl, die meisten Scriptsprachen-HTTP-Bibliotheken). Die normale Lösung ist verschiedene Umgebungsvariablen wie HTTP_PROXY bis proxy.example.com:8888 gesetzt, aber das funktioniert nicht mit PAC. Stattdessen führen die meisten von uns unter localhost einen PAC-fähigen Proxy aus und senden alles durch.OSX: Warum verwendet curl keine automatische Proxy-Konfiguration/PAC?

Meine Frage ist, warum ist das überhaupt notwendig? OSX ist in Ordnung, PAC-Regeln für seine eigenen Verbindungen zu bewerten, aber curl, etc. kann nicht? diese networksetup gibt mir:

$ networksetup -listallhardwareports 
Hardware Port: Wi-Fi 
Device: en0 
Ethernet Address: ... 
$ networksetup -getproxyautodiscovery Wi-Fi 
Auto Proxy Discovery: On 

ich nahm bedeuten, dass alles durch en0 gehen sollte Proxy Auto-Discovery haben. Ist das falsch? Werden die automatische Proxy-Erkennung und die automatische Konfiguration auf einer höheren Ebene durchgeführt, auf die nur über Apple-APIs zugegriffen werden kann (welche Browser usw. verwenden)? (Und wenn ja, wie kann ich darauf zugreifen?)

+0

Ich konnte Ihnen nicht sagen, warum die Funktionalität ist die Art, wie Sie beschreiben (es war auf diese Weise scheinbar jahrelang). Es gibt einen Weg, ein [Skript] (https://github.com/macmule/setAutomaticProxyConfigurationURL) zu haben, das alle schweren Arbeiten für die Verwendung mit Terminal usw. ausführt, die mit pac-Dateien funktionieren. Es gibt [ein Problem] (https://github.com/macmule/setAutomaticProxyConfigurationURL/issues/1), das Sie wahrscheinlich ansprechen müssen, bevor es mit dem neuesten OS X kompatibel ist. –

+0

@AndrewO, wir haben das gleiche Problem. Können Sie ein wenig mehr Details über den PAC-fähigen Proxy auf der von Ihnen verwendeten localhost-Lösung teilen? Ich habe nach einigen OS X-Proxy-Anwendungen gesucht, konnte aber keine finden, die PAC-fähig ist. – tleish

Antwort

2

OS X 10.11 und höher enthalten nscurl, die ein vereinfachtes Curl-like-Dienstprogramm, das die Plattform-APIs für die Netzwerkübertragung verwendet. Ich würde erwarten, dass es Proxies sowie alle OS X-Anwendungen unterstützt, obwohl es nicht alle Funktionen von curl

+0

Danke. Es ist näher als zuvor, aber nicht ganz da. Wie du bereits erwähnt hast, ist es kein kompletter Ersatz für 'curl' oder' libcurl'. Selbst wenn es so wäre, müssten viele Dinge neu verknüpft oder neu kompiliert werden (ganz zu schweigen von Ausreißern wie Java). Aber es gibt einen Hinweis auf meinen Verdacht, dass diese Funktionen nur über Apple APIs wie Core Foundation oder AppKit verfügbar sind (weitere Beweise [hier] (https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/ Conceptual/NetworkingOverview/ChoosingTheRightNetworkingAPI/ChooseTheRightNetworkingAPI.html)). – AndrewO

Verwandte Themen