Tengo varias ubicaciones de red configuradas en mi computadora portátil: Trabajo, Hogar, etc. El trabajo tiene un servidor proxy configurado, mientras que los otros no. Esto funciona bien para aplicaciones OSX: Safari, Mail, incluso Firefox y Thunderbird con el complemento System Proxy .
Para las aplicaciones de terminal, como git
, svn
, gem
, y curl
Tengo el siguiente en mi .bash_profile
:
export HTTP_PROXY='http://proxy.mycompany.com:80'
export http_proxy=$HTTP_PROXY
Mi pregunta es esta: ¿hay alguna forma de hacer que la variable exportada busque el valor desde la ubicación actual de mi sistema? Preferiría que se hiciera dinámicamente (por lo que si cambio de ubicación durante una sesión de terminal, cambiará), pero estaría contento con solo uno que lo configure cuando se .bash_profile
ejecute (lo que significa que tendría que comenzar una nueva sesión de terminal cuando cambié de lugar).
¡Gracias!
Respuestas:
¿Qué versión de Mac OS X? No estoy seguro de que la herramienta esté incluida con Mac OS X 10.4 o anterior.
networksetup
debe ser lo que está buscando, a sabersudo networksetup -getwebproxy NAME_OF_NETWORK_DEVICE
(por ejemplo, sudo networksetup -getwebproxy Airport)La salida sale así:
Por lo tanto, deberá convertir la salida a algo utilizable.
Un ejemplo realmente burdo de usar awk un par de veces (mis habilidades awk son bastante básicas) sería:
Resultados en una salida
http://SERVER_ADDRESS:123
fuente
networksetup -listallnetworkservices
sudo networksetup -getwebproxy Ethernet
, obtengo la impresión y luego un segfault. Me imagino que el segfault hace que la tubería se rompa, por lo queawk
nunca se analiza.awk
. Agregar el awk hace que desaparezca el mensaje segfault. . . junto con todos los demás resultados.En la respuesta anterior , hay un comentario de tlrobinson sobre cómo no incluye el número de puerto.
Puede hacerlo cambiando el servidor proxy HTTP con el puerto proxy HTTP
También he visto esto hecho así:
fuente
Además, este comando puede ayudar a descubrir otras configuraciones de proxy:
scutil --proxy
fuente
Lo siguiente parece funcionar, pero no estoy seguro de cuán robusto es:
No funciona si su ubicación utiliza una
proxy.pac
ubicación de proxy codificada en lugar de una codificada.fuente
Podrías usar la pequeña herramienta que escribí, que establece las variables de entorno comúnmente utilizadas para los proxies. El uso es sencillo:
Añadir:
a tu
.profile
,.bashrc
o.bash_profile
.Después de que se pueden utilizar variables como
$HTTP_PROXY
,$http_proxy
,$HttpProxy
, etc., para todos los protocolos (HTTP, FTP, calcetines), incluyendo las$NO_PROXY
excepciones. Esto funcionará para la mayoría de las herramientas CLI y obtiene la configuración desde el panel de control de OS X.fuente