Ir al contenido
GProxy
Registro
Гайды 7 min de lectura 31 vistas

Configuración de Proxy Linux

Una guía completa para configurar un proxy Linux. Explore la configuración del entorno, la gestión de paquetes APT y la integración con Systemd.

Configuración de Proxy Linux

Configurar un proxy en Linux implica establecer variables de entorno para las sesiones de usuario, configurar APT para la gestión de paquetes y especificar la configuración del proxy para los servicios de Systemd para asegurar que todos los componentes del sistema puedan acceder a redes externas a través del proxy.

Muchos entornos Linux operan detrás de firewalls corporativos o requieren el enrutamiento del tráfico a través de un servidor proxy por motivos de seguridad, registro o control de acceso. Una configuración de proxy adecuada es fundamental para la funcionalidad del sistema, incluyendo actualizaciones de software, acceso a internet para aplicaciones de usuario y comunicación de servicios en segundo plano. Este artículo detalla los métodos para configurar los ajustes de proxy en los componentes comunes de Linux.

Variables de Entorno

Los entornos de shell y las aplicaciones que los heredan a menudo dependen de variables de entorno estándar para la configuración del proxy. Estas variables definen la dirección del servidor proxy para el tráfico HTTP, HTTPS y FTP, así como las excepciones para conexiones directas.

Variables de Entorno de Proxy Estándar

  • HTTP_PROXY: Proxy para conexiones HTTP.
  • HTTPS_PROXY: Proxy para conexiones HTTPS.
  • FTP_PROXY: Proxy para conexiones FTP.
  • NO_PROXY: Una lista separada por comas de nombres de host, direcciones IP o rangos CIDR que deben omitir el proxy. Ejemplo: localhost,127.0.0.1,*.local,192.168.0.0/24.

Estas variables distinguen entre mayúsculas y minúsculas en algunos contextos (por ejemplo, wget a menudo usa http_proxy en minúsculas, mientras que otros prefieren HTTP_PROXY en mayúsculas). Es una práctica común establecer ambas versiones, en mayúsculas y minúsculas, para una compatibilidad más amplia.

Configuración Temporal de la Sesión de Shell

Para establecer variables de proxy para la sesión de shell actual y cualquier proceso iniciado desde ella:

export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"

# Para compatibilidad, también establecer versiones en minúsculas
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Reemplace proxy.example.com:8080 con la dirección y el puerto de su servidor proxy. Si se requiere autenticación, incluya las credenciales: http://usuario:contraseña@proxy.example.com:8080.

Configuración Persistente Específica del Usuario

Para que la configuración del proxy persista en las sesiones de inicio de sesión del usuario, agregue los comandos export al archivo de perfil de shell del usuario.

  • Bash: ~/.bashrc o ~/.profile
  • Zsh: ~/.zshrc

Ejemplo para ~/.bashrc:

# Configuración del Proxy
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Después de modificar, cargue el archivo o cierre sesión y vuelva a iniciarla: source ~/.bashrc.

Configuración Persistente a Nivel de Sistema

Para la configuración de proxy a nivel de sistema que afecta a todos los usuarios y a algunos procesos del sistema (aunque no directamente a todos los servicios de Systemd), use /etc/environment o archivos en /etc/profile.d/.

/etc/environment

Este archivo es leído por PAM (Pluggable Authentication Modules) al iniciar sesión para todos los servicios y aplicaciones iniciados por un shell de inicio de sesión. Solo admite la sintaxis KEY="valor", sin export.

HTTP_PROXY="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
FTP_PROXY="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,.example.com"
http_proxy="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
ftp_proxy="http://proxy.example.com:8080"
no_proxy="localhost,127.0.0.1,.example.com"

Los cambios en /etc/environment generalmente requieren un reinicio o un nuevo inicio de sesión para que las nuevas sesiones los tomen.

/etc/profile.d/

Los scripts colocados en /etc/profile.d/ son cargados por los shells de inicio de sesión. Esto es adecuado para establecer variables de entorno que requieren lógica o declaraciones export. Cree un nuevo archivo, por ejemplo, /etc/profile.d/proxy.sh:

#!/bin/bash
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Asegúrese de que el script sea ejecutable: sudo chmod +x /etc/profile.d/proxy.sh.

sudo y Variables de Proxy

Al usar sudo, las variables de entorno a menudo se restablecen por razones de seguridad. Para preservar la configuración del proxy para los comandos ejecutados con sudo:

  1. Usar sudo -E: Esto preserva las variables de entorno actuales.
    bash sudo -E apt update
  2. Configurar sudoers: Edite /etc/sudoers usando sudo visudo y agregue/modifique env_keep.
    Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY http_proxy https_proxy ftp_proxy no_proxy"
    Este enfoque es generalmente más seguro que sudo -E para configuraciones persistentes del sistema.

APT (Advanced Package Tool)

APT, el gestor de paquetes utilizado por las distribuciones basadas en Debian (por ejemplo, Ubuntu), requiere su propia configuración de proxy, separada de las variables de entorno del shell.

Archivo de Configuración de Proxy de APT

La configuración de proxy de APT se define en archivos de configuración dentro de /etc/apt/apt.conf.d/. Cree un nuevo archivo, por ejemplo, /etc/apt/apt.conf.d/01proxy, con el siguiente contenido:

Acquire::http::Proxy "http://proxy.example.com:8080/";
Acquire::https::Proxy "http://proxy.example.com:8080/";
# Acquire::ftp::Proxy "ftp://proxy.example.com:8080/"; # Descomentar si es necesario

Reemplace proxy.example.com:8080 con la dirección y el puerto de su servidor proxy.

Si el proxy requiere autenticación:

Acquire::http::Proxy "http://usuario:contraseña@proxy.example.com:8080/";
Acquire::https::Proxy "http://usuario:contraseña@proxy.example.com:8080/";

Para hosts que deben omitir el proxy de APT, use Acquire::NoProxy:

Acquire::NoProxy "localhost,127.0.0.1,archive.ubuntu.com";

Esto se usa con menos frecuencia que el NO_PROXY global, pero puede ser específico para APT.

Después de crear o modificar el archivo, APT usará automáticamente esta configuración para operaciones posteriores (por ejemplo, apt update, apt install). No se requiere reiniciar ningún servicio.

Servicios de Systemd

Systemd gestiona los servicios y aplicaciones del sistema. Los servicios iniciados por Systemd no heredan automáticamente las variables de entorno de proxy establecidas en los perfiles de shell o en /etc/environment. Cada unidad de Systemd que requiera acceso a proxy debe configurarse explícitamente.

Proxy para un Servicio Específico de Systemd

Para configurar los ajustes de proxy para un servicio individual de Systemd, cree un archivo de anulación. Este es el método recomendado para evitar modificar directamente los archivos de unidad originales, que pueden ser sobrescritos durante las actualizaciones de paquetes.

  1. Crear un directorio de anulación:
    bash sudo systemctl edit <nombre_del_servicio>
    Este comando abre un editor para /etc/systemd/system/<nombre_del_servicio>.service.d/override.conf.

  2. Agregar variables de entorno de proxy:
    Dentro del editor, agregue la sección [Service] y las directivas Environment:

    ini [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" \ "HTTPS_PROXY=http://proxy.example.com:8080" \ "NO_PROXY=localhost,127.0.0.1" Environment="http_proxy=http://proxy.example.com:8080" \ "https_proxy=http://proxy.example.com:8080" \ "no_proxy=localhost,127.0.0.1"
    Cada directiva Environment puede contener múltiples variables, separadas por espacios dentro de las comillas, o puede usar múltiples líneas Environment. El \ es para la continuación de línea en el archivo de anulación.

  3. Guardar y salir: Guarde el archivo. Systemd recargará automáticamente el demonio y le pedirá que reinicie el servicio. Confirme el reinicio. Si no se le solicita, recargue y reinicie manualmente:
    bash sudo systemctl daemon-reload sudo systemctl restart <nombre_del_servicio>

Configuración Global de Proxy de Systemd

Para servicios que no tienen configuraciones de proxy específicas o para un valor predeterminado a nivel de sistema, configure los ajustes de proxy en el entorno global de Systemd. Esto afecta a todos los servicios que no anulan explícitamente estas variables.

  1. Crear un directorio para configuraciones drop-in:
    bash sudo mkdir -p /etc/systemd/system.conf.d/

  2. Crear un archivo de configuración de proxy:
    bash sudo nano /etc/systemd/system.conf.d/proxy.conf

  3. Agregar variables de entorno de proxy:
    ini [Manager] DefaultEnvironment="HTTP_PROXY=http://proxy.example.com:8080" DefaultEnvironment="HTTPS_PROXY=http://proxy.example.com:8080" DefaultEnvironment="NO_PROXY=localhost,127.0.0.1" DefaultEnvironment="http_proxy=http://proxy.example.com:8080" DefaultEnvironment="https_proxy=http://proxy.example.com:8080" DefaultEnvironment="no_proxy=localhost,127.0.0.1"

  4. Recargar el demonio de Systemd y reiniciar los servicios:
    bash sudo systemctl daemon-reload sudo systemctl restart --all # Usar con precaución, reinicia todos los servicios de usuario y del sistema
    Un reinicio completo del sistema suele ser la forma más segura de garantizar que todos los servicios capten estos cambios globales.

Verificación

Después de configurar los ajustes del proxy, verifique su efectividad:

  • Variables de Entorno:
    bash env | grep -i proxy
  • APT:
    bash apt config dump | grep -i proxy
    Intente una actualización: sudo apt update.
  • Acceso General a la Red:
    bash curl -v http://ifconfig.me
    La salida debería mostrar la dirección IP del servidor proxy si el tráfico se enruta a través de él, o su IP externa si NO_PROXY es efectivo.
  • Servicio de Systemd: Verifique el estado del servicio y los registros en busca de problemas de conectividad.
    bash sudo systemctl status <nombre_del_servicio> sudo journalctl -u <nombre_del_servicio>
    También puede inspeccionar el entorno de un proceso de servicio en ejecución. Encuentre el PID del servicio, luego:
    bash sudo cat /proc/<PID>/environ | tr '\0' '\n' | grep -i proxy

Comparación de Métodos de Configuración de Proxy

Método Alcance Persistencia Componentes Afectados Ejemplo de Configuración
Entorno de Shell (Temporal) Sesión de shell actual No Comandos lanzados desde el shell actual export HTTP_PROXY="..."
Perfil de Usuario (~/.bashrc) Sesiones de inicio de sesión del usuario Aplicaciones de usuario, comandos de shell Agregar líneas export a ~/.bashrc
A Nivel de Sistema (/etc/environment) Todas las sesiones de inicio de sesión, algunos procesos del sistema Shells de inicio de sesión, algunas aplicaciones (no Systemd) HTTP_PROXY="..." en /etc/environment
A Nivel de Sistema (/etc/profile.d/) Todos los shells de inicio de sesión Shells de inicio de sesión, aplicaciones lanzadas desde ellos Script con líneas export en /etc/profile.d/
APT (/etc/apt/apt.conf.d/) Solo el gestor de paquetes APT apt, apt-get, aptitude Acquire::http::Proxy "..."; en 01proxy
Anulación de Servicio Systemd (override.conf) Unidad Systemd específica Un servicio Systemd Environment="..." en /etc/systemd/system/<servicio>.service.d/override.conf
Systemd Global (system.conf.d/) Todos los servicios Systemd (predeterminado) Todos los servicios Systemd a menos que se anulen DefaultEnvironment="..." en /etc/systemd/system.conf.d/proxy.conf
Actualizado: 03.03.2026
Volver a la categoría

Pruebe nuestros proxies

20,000+ proxies en 100+ países del mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.