Yo solía usar gnome2 pero desde que apareció la tercera versión de este escritorio me mudé para KDE, entre otras cosas porque uso Chrome y la configuración del  proxy de gnome3 no tiene (aparentemente) como especificar las excepciones. Hace poco me vi en la obligación de usar Unity y como padece del mismo problema terminé por buscarle una solución.

Nada que si es verdad que la  solución no salta a los ojos (al menos para mi que estoy acostumbrado a que en firefox, windows, gnome2 y kde el proxy tenga excepciones) también es verdad que está basada en un estándar que ya tiene algunos años (y que también  se puede usar en firefox, kde y creo que en windows y gnome 2 también). Este estándar se conoce como proxy auto-conf (pac:  configuración automática del proxy) y se le ocurrió a Netscape hace casi  años 15 (si la memoria no me falla en el ’96). El  pac no es nada más que un archivo escrito en javascript en el que se define una  función FindProxyForURL que recibe dos parámetros (host y url  de una petición) y devuelve la dirección del proxy que se debe usar en ese caso o, si no es, necesario el valor “DIRECT”.

Pero como al “usuario final” (cliché  que nunca he entendido )  probablemente no le  interese la programación :), dejemos la cháchara y vamos al grano de como usar esto:

  1. Creamos un archivo en cualquier lugar del sistema (yo lo pongo en /home/leiser/ ) con un nombre cualquiera (yo lo pongo proxy.pac para no borrarlo por accidente).
  2. Llenamos este archivo con el trozo de código que pongo adelante o una versión de este si usas proxy y no estás en la UCI.
  3. Abrimos la ventana de configuración del proxy de gnome3 (o Unity, o Cinnamond…) y escogemos la opción Automatic (si tienes el sistema en otro idioma tiene que ser parecida).
  4. En el campo para la URL de la configuración ponemos (¡oh maravillosa casualidad!) el url del archivo, que en mi caso sería file:///home/leiser/proxy.pac.
  5. Y ya tenemos proxy en el escritorio, con lo que podemos usar Chrome (Chromium) sin ningún problema.

Ahora el susodicho proxy.pac con comentarios:

 /*Esta configuración es solo para la UCI pero modificarla para otra red 
 no debe tener complicaciones*/

 function FindProxyForURL(url, host) {
      // los dominios uci.cu  y localhost no necesitan proxy
      if (shExpMatch(host, "*.uci.cu") || shExpMatch(host, "localhost"))
      {
         return "DIRECT";
      }

      //tampoco los que están en el rango 10.0.0.0 - 10.255.255.255

      if (isInNet(host, "10.0.0.0",  "10.255.255.255"))
      {
         return "DIRECT";
      }

      /* shExpMatch y isInNet son funciones definidas por el estándar 
pac pero también se pueden usar  RegExp o cualquier cosa escrita en 
javascript "normal" */

      // Al resto le damos el archiconocido 10.0.0.1
      return "PROXY 10.0.0.1:8080";
   }

 

PD: la foto de la configuración del  proxy  es de oadiaz, que ya saben que  uso KDE 😛

PPD: en chrome también se puede usar pac independientemente del escritorio solo hay que usar un  parámetro cuando lo llamas desde el terminal , en mi caso sería google-chrome –proxy-pac-url=”file:///home/leiser/proxy.pac”. Esto funciona en cualquier SO que en el que corra Chrome.

PPPD: en ambos casos el url no tiene por que ser local, cosa que pueden aprovechar los web-mines para embullarse y dar servicio de auto proxy a sus usuarios.