En este artículo veremos cómo configurar openSUSE Leap 15 para utlilizar un proxy como Squid, de modo que podamos aumentar la velocidad y rendimiento en las actualizaciones e instalaciones de paquetes cuando tenemos varios sistemas que mantener.
Contenido
Antes de configurar openSUSE Leap 15 para utilizar un proxy
Si quieres completar los pasos de esta guía de configuración de openSUSE Leap 15 para utilizar un proxy debes partir del siguiente escenario:
- Un servidor proxy (como Squid) instalado y configurado en alguna máquina de tu red local.
- Una o varias máquinas openSUSE Leap 15 actualizadas.
- Acceso a línea de comandos con privilegios de sudo en las máquinas openSUSE Leap 15.
- Conexión a Internet.
Partimos de una red local en la que una de las máquinas tendrá un servidor proxy instalado y configurado, listo para recibir conexiones. En este caso se tratará de un servidor Squid con la opción de caché activada, de modo que guardará los paquetes que soliciten los clientes para ofrecerlos de nuevo sin necesidad de volver a descargarlos de Internet en sucesivas peticiones. De esta forma el ahorro en tiempo y ancho de banda puede ser mucho, sobre todo en redes con varias máquinas openSUSE Leap 15.
Cómo configurar openSUSE Leap 15 para utilizar un proxy
El primer paso será configurar openSUSE Leap 15 para que conecte a través del proxy al conectar a Internet. Desgraciadamente no existe (o no la he encontrado) opción para realizar esta configuración exclusivamente para zypper, por lo que usaremos la confiugración de proxy del sistema.
Editamos el archivo proxy:
~> sudo nano /etc/sysconfig/proxy
Buscamos la directiva PROXY_ENABLED:
... PROXY_ENABLED="no" ...
Y cambiamos su valor:
... PROXY_ENABLED="yes" ...
A continuación buscamos las directivas HTTP_PROXY y HTTPS_PROXY:
... HTTP_PROXY="" ... HTTPS_PROXY="" ...
Y las configuramos con el valor del servidor proxy que vamos a utilizar. El servidor proxy que usamos en este tutorial es accesible en http://cacher.local.lan:3128, así que esa será la URL que indicaremos:
... HTTP_PROXY="http://cacher.local.lan:3128" ... HTTPS_PROXY="http://cacher.local.lan:3128" ...
Una vez guardados los cambios, el sistema está listo para conectar a Internet a través del proxy, incluyendo las conexiones realizadas con zypper.
Cómo optimizar los repositorios de openSUSE Leap 15 para trabajar con un proxy
Aunque nuestras máquinas openSUSE Leap 15 conecten correctamente al proxy y descarguen los paquetes sin problemas, hemos de tener en cuenta que puede darse la situación de que máquinas distintas (o incluso la misma) utilicen espejos o mirrors distintos para obtener el mismo paquete. Para el servidor proxy serán paquetes distintos al ser descargados de distintos servidores, por lo que perderemos rendimiento y el servidor proxy desperdiciará ancho de banda y espacio de almacenamiento.
Para evitar esto localizaremos un espejo o mirror cercano de confianza. Por ejemplo, podemos consultar la lista de espejos o mirrors de openSUSE Leap 15.3:
Por ejemplo, si quisiéramos configurar un espejo o mirror para España, consultaríamos en la sección de Europa. No existen espejos en España, según esta lista oficial, pero podemos usar el espejo de Portugal, que es el más cercano.
Situando el cursor sobre el enlace «HTTP» podremos copiar el enlace al espejo, que en este ejemplo es el siguiente:
http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/
Vamos a sustituir este valor en todos los archivos de repositorio de openSUSE Leap 15, pero lo haremos usando una variable, de modo que en un momento dado si queremos cambiar el espejo o mirror de openSUSE Leap 15 haya que realizar el ajuste en un solo lugar.
Esto se hace creando un archivo en la ruta /etc/zypp/vars.d/ con el nombre de la variable que queramos definir, en este caso puede ser buena idea llamarla mirror:
~> sudo nano /etc/zypp/vars.d/mirror
El contenido será una única línea, que será el valor de la variable que estamos definiendo. Debemos tener la precaución de eliminar el protocolo de conexión (http:// en este caso) y la barra final, quedando así:
ftp.rnl.tecnico.ulisboa.pt/pub/opensuse
Obviamente en tu caso no tiene por qué coincidir ni el servidor ni la ruta base (/pub/opensuse), ya que en cada organización tienen la estructura más conveniente para sus intereses.
Guardamos los cambios y pasamos a modificar los archivos de repositorio.
Configurar los repositorios de openSUSE Leap 15 para usar el mirror personalizado
Los archivos de repositorio de openSUSE Leap 15 se encuentran en la ruta /etc/zypp/repos.d/, existiendo inicialmente sólo repositorios de la distribución:
~> ll /etc/zypp/repos.d/ total 56 -rw-r--r-- 1 root root 234 jun 21 01:18 openSUSE-Leap-15.3-1.repo -rw-r--r-- 1 root root 319 jun 21 01:18 repo-backports-debug-update.repo -rw-r--r-- 1 root root 258 jun 21 01:18 repo-backports-update.repo -rw-r--r-- 1 root root 253 jun 21 01:19 repo-debug-non-oss.repo -rw-r--r-- 1 root root 227 jun 21 01:19 repo-debug.repo -rw-r--r-- 1 root root 246 jun 21 01:19 repo-debug-update-non-oss.repo -rw-r--r-- 1 root root 221 jun 21 01:19 repo-debug-update.repo -rw-r--r-- 1 root root 247 jun 21 01:19 repo-non-oss.repo -rw-r--r-- 1 root root 237 jun 21 01:19 repo-oss.repo -rw-r--r-- 1 root root 293 jun 21 01:19 repo-sle-debug-update.repo -rw-r--r-- 1 root root 261 jun 21 01:20 repo-sle-update.repo -rw-r--r-- 1 root root 231 jun 21 01:20 repo-source.repo -rw-r--r-- 1 root root 259 jun 21 01:20 repo-update-non-oss.repo -rw-r--r-- 1 root root 235 jun 21 01:20 repo-update.repo
Editamos estos repositorios con nano, indicando que se carguen todos los archivos del directorio:
~> sudo nano /etc/zypp/repos.d/*
Si existiera entre ellos algún repositorio adicional que no pertenezca al sistema, en su momento lo cerraremos sin modificaciones y pasaremos al siguiente. En el caso de openSUSE Leap 15.3 también nos saltaremos el repositorio repo-backports-update.repo, ya que no he encontrado ningún servidor espejo que ofrezca su contenido.
Al cargar el primer archivo de repositorio (openSUSE-Leap-15.3-1.repo en este caso) veremos que su URL se especifica a través de una directiva baseurl:
... baseurl=http://download.opensuse.org/distribution/leap/15.3/repo/oss/ ...
El cambio que haremos será el siguiente:
- Desactivar la directiva original.
- Añadir una nueva directiva baseurl a continuación.
- Especificar el protocolo de conexión http://.
- Añadir la variable que definimos, mirror en este ejemplo, antecedida con un símbolo $.
- Añadiremos una barra /.
- Copiaremos la ruta de la directiva baseurl original (distribution/leap/15.3/repo/oss/ en este caso) y la añadimos a la nueva directiva baseurl.
Nos quedaría algo como esto:
... #baseurl=http://download.opensuse.org/distribution/leap/15.3/repo/oss/ baseurl=http://$mirror/distribution/leap/15.3/repo/oss/ ...
De esta forma conservamos la configuración original y configuramos el espejo.
Guardamos los cambios (control-O), cerramos el archivo (control-X) y nano mostrará el siguiente archivo de repositorio, donde realizaremos una operación similar.
Cerrado el último archivo, la configuración habrá terminado.
Comprobar la configuración
Podremos comprobar que nuestra nueva configuración funciona lanzando el comando zypper para refrescar la información de los repositorios y actualizar los paquetes necesarios:
Ningún mensaje de error, todo correcto.
Si tenemos acceso al servidor proxy, podremos comprobar en su registro de acceso las conexiones recibidas desde la máquina opensSUSE Leap 15 que acabamos de configurar:
... ... 0 192.168.0.144 TCP_MEM_HIT/200 411 HEAD http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/distribution/leap/15.3/repo/oss/repodata/repomd.xml - HIER_NONE/- text/xml ... 1 192.168.0.144 TCP_MEM_HIT/200 10051 GET http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/distribution/leap/15.3/repo/oss/repodata/repomd.xml - HIER_NONE/- text/xml ... 0 192.168.0.144 TCP_MEM_HIT/200 423 HEAD http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/distribution/leap/15.3/repo/oss/media.1/media - HIER_NONE/- application/octet-stream ... ... 0 192.168.0.144 TCP_MEM_HIT/200 410 HEAD http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/update/leap/15.3/non-oss/repodata/repomd.xml - HIER_NONE/- text/xml ... 0 192.168.0.144 TCP_MEM_HIT/200 3070 GET http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/update/leap/15.3/non-oss/repodata/repomd.xml - HIER_NONE/- text/xml ... 4957 192.168.0.144 TCP_MISS/404 264 HEAD http://ftp.rnl.tecnico.ulisboa.pt/pub/opensuse/update/leap/15.3/non-oss/media.1/media - HIER_DIRECT/193.136.164.6 text/html ...
Se pueden apreciar las URL completas solicitadas, el resultado de la conexión, etc.
Conclusión
Ahora que sabes cómo configurar openSUSE Leap 15 para conectar a través de un proxy ahorrarás tiempo y ancho de banda a medida que configures más máquinas o reinstales software. Esto es válido tanto para los repositorios del sistema como para repositorios de terceros que vayamos añadiendo, creando la configuración siguiendo un proceso similar al descrito en el artículo.
Si te ha surgido algunda duda o pregunta, tienes sugerencias de mejora, crees que este artículo debería ser actualizado, quieres notificar algún posible error, etc. puedes dejar un comentario. Los revisamos diariamente.
¡Apoya comoinstalar.me!
¿Ya has podido realizar gracias a nuestra guía de configuración de openSUSE Leap 15 para conexión a través de proxy? Si es así y te apetece agradecérnoslo colaborando con el mantenimiento de este sitio y la creación de nuevos artículos, puedes hacerlo dejando 1 $ de propina desde PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!