Volver al blog

Guía Completa 2025: Configurar Proxies en Windows y Linux

195+ países

📅13 de noviembre de 2025

En esta serie de artículos: Guía completa para configurar servidores proxy en los sistemas operativos Windows 10/11 y Linux (Ubuntu, Debian, CentOS). Aprenderá todos los métodos de configuración, desde la interfaz gráfica hasta la línea de comandos, el registro, las variables de entorno, los archivos PAC y la configuración automática. El material está actualizado para 2025, teniendo en cuenta las últimas actualizaciones de los sistemas operativos.

🪟 Introducción: por qué configurar un proxy en Windows

Configurar un servidor proxy en Windows es una habilidad importante para trabajar en redes corporativas, eludir bloqueos regionales, proteger la privacidad y automatizar el web scraping. En 2025, Windows ofrece múltiples formas de configurar un proxy, desde la sencilla interfaz gráfica hasta potentes herramientas de línea de comandos.

Escenarios principales de uso de proxy en Windows

🏢 Redes corporativas

La mayoría de las empresas exigen el uso de un proxy corporativo para acceder a Internet, controlar el tráfico y garantizar la seguridad.

🔒 Privacidad

El uso de un proxy permite ocultar la dirección IP real, proteger los datos personales y eludir las restricciones geográficas.

⚙️ Automatización

Para el web scraping, el análisis de datos y las pruebas automatizadas, los proxies son necesarios para la rotación de IP y la evasión de restricciones.

🌍 Geolocalización

Acceso a contenido de diferentes países para pruebas, monitoreo de precios y verificación de disponibilidad de servicios.

✅ Lo que aprenderá en esta parte

  • Configuración de proxy a través de la interfaz gráfica de Windows 10 y 11
  • Uso del panel de control clásico
  • Trabajo con el registro de Windows para ajustes finos
  • Automatización a través de PowerShell y la línea de comandos
  • Configuración de variables de entorno
  • Configuración de proxy para aplicaciones específicas

🎨 Configuración de proxy en Windows 11 a través de la GUI

Windows 11 ofrece una interfaz de configuración renovada con navegación mejorada. En 2025, este método es el más sencillo y recomendado para la mayoría de los usuarios.

Instrucciones paso a paso

Paso 1: Abrir la configuración

Presione Windows + I o abra el menú Inicio y seleccione el icono de engranaje (Configuración).

💡 Consejo: También puede hacer clic derecho en el icono de red en la bandeja del sistema y seleccionar "Configuración de red".

Paso 2: Navegar a la configuración del proxy

En la ventana de Configuración, seleccione:

  1. Red e Internet (Network & Internet) en el panel izquierdo
  2. Desplácese hacia abajo y seleccione Proxy (Proxy)

Paso 3: Elegir el método de configuración

Windows 11 ofrece tres formas de configurar el proxy:

🔄 Detección automática

Activado por defecto. Windows intenta detectar automáticamente la configuración del proxy a través de DHCP o DNS.

📜 Usar script de configuración

Para archivos PAC (Proxy Auto-Config). Introduzca la URL del script de configuración.

⚙️ Configurar manualmente

El método más común. Introduzca la IP y el puerto del servidor proxy manualmente.

Paso 4: Configuración manual del proxy

  1. En la sección "Configurar manualmente", haga clic en el botón Configurar
  2. Active el interruptor "Usar un servidor proxy"
  3. Introduzca la dirección IP o el nombre de dominio del servidor proxy
  4. Introduzca el Puerto (normalmente 8080, 3128, 80 u otro)
  5. (Opcional) En el campo "No usar el servidor proxy para direcciones", añada exclusiones
  6. Haga clic en Guardar
Ejemplo de configuración:
Dirección del servidor proxy: 192.168.1.100
Puerto: 8080

No usar proxy para:
localhost;127.0.0.1;*.local;192.168.*

⚠️ Importante: La configuración del proxy en Windows 11 se aplica a nivel de sistema para todas las aplicaciones que utilizan las API WinHTTP y WinINET. Sin embargo, algunas aplicaciones (como Firefox) utilizan su propia configuración de proxy.

🖥️ Configuración de proxy en Windows 10

El proceso de configuración del proxy en Windows 10 es muy similar al de Windows 11, pero con ligeras diferencias en la interfaz. Este método sigue siendo relevante en 2025 para millones de usuarios.

Instrucciones para Windows 10

Método 1: A través de Configuración de Windows

  1. Presione Windows + I para abrir Configuración
  2. Seleccione Red e Internet
  3. En el panel izquierdo, elija Proxy
  4. En la sección "Configuración manual del proxy", active "Usar un servidor proxy"
  5. Introduzca la dirección y el puerto
  6. Haga clic en Guardar

Configuración de exclusiones

Para que algunas direcciones no utilicen el proxy, añádalas al campo de exclusiones:

localhost;127.0.0.1;*.local;intranet.company.com

Las direcciones se separan con punto y coma. Se pueden usar comodines (*).

🎛️ Panel de control clásico (Opciones de Internet)

Un método antiguo pero aún funcional para configurar el proxy a través de la ventana "Propiedades de Internet". Este método ofrece capacidades de configuración avanzadas no disponibles en la interfaz moderna de Windows.

Acceso a Opciones de Internet

Formas de abrir:

1️⃣ A través del comando Ejecutar

Presione Windows + R y escriba:

inetcpl.cpl
2️⃣ A través del Panel de control

Panel de control → Redes e Internet → Propiedades del navegador

3️⃣ A través de Internet Explorer

Menú → Herramientas → Opciones de Internet

Configuración del proxy

  1. Abra la pestaña Conexiones (Connections)
  2. Haga clic en el botón Configuración de red (LAN settings)
  3. En la sección "Servidor proxy", marque la casilla "Usar un servidor proxy"
  4. Haga clic en el botón Avanzadas para configuraciones detalladas

Configuración avanzada del proxy

El botón "Avanzadas" permite configurar diferentes proxies para distintos protocolos:

Protocolo Dirección proxy Puerto
HTTP 192.168.1.100 8080
Seguro (HTTPS) 192.168.1.100 8443
FTP 192.168.1.100 2121
Socks 192.168.1.100 1080

Ventaja: Se pueden usar diferentes proxies para distintos tipos de tráfico

📝 Configuración a través del Registro de Windows

El Registro de Windows es una herramienta potente para la gestión directa de la configuración del sistema. Este método es adecuado para usuarios avanzados y para la automatización mediante scripts.

⚠️ Advertencia: La edición incorrecta del registro puede provocar un mal funcionamiento del sistema. Cree una copia de seguridad del registro antes de realizar cambios. Utilice este método solo si entiende lo que está haciendo.

Claves del registro para el proxy

Ubicación de la configuración

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

Parámetros principales

Parámetro Tipo Valor Descripción
ProxyEnable DWORD 1 Habilitar proxy (0 = deshabilitar)
ProxyServer String 192.168.1.100:8080 Dirección y puerto del proxy
ProxyOverride String localhost;127.*;*.local Exclusiones (direcciones sin proxy)
AutoConfigURL String http://proxy/proxy.pac URL del archivo PAC

Ejemplo de archivo REG para importar

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="192.168.1.100:8080"
"ProxyOverride"="localhost;127.0.0.1;*.local"

Guarde este texto en un archivo con extensión .reg y haga doble clic para importarlo en el registro.

⚡ Configuración a través de PowerShell

PowerShell es una herramienta moderna y potente para la automatización de la configuración de Windows. Ideal para la configuración masiva de proxies en muchos ordenadores o para la automatización de la configuración.

Comandos de PowerShell para la gestión de proxies

Habilitar proxy

# Establecer la dirección del servidor proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyServer -Value "192.168.1.100:8080"

# Habilitar proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 1

# Aplicar cambios (notificar al sistema)
$signature = @'
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(int hInternet, int dwOption, int lpBuffer, int dwBufferLength);
'@
$type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
$type::InternetSetOption(0, 39, 0, 0) | Out-Null

Deshabilitar proxy

# Deshabilitar proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 0

Verificar la configuración actual

# Obtener todas las configuraciones de proxy
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | `
  Select-Object ProxyEnable, ProxyServer, ProxyOverride, AutoConfigURL

Función lista para configurar proxy

function Set-Proxy {
  param(
    [Parameter(Mandatory=$true)]
    [string]$Server,
    [Parameter(Mandatory=$true)]
    [int]$Port,
    [string]$Override = "localhost;127.0.0.1;*.local"
  )

  $proxyString = "${Server}:${Port}"
  $regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

  Set-ItemProperty -Path $regPath -Name ProxyServer -Value $proxyString
  Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 1
  Set-ItemProperty -Path $regPath -Name ProxyOverride -Value $Override

  Write-Host "Proxy configurado: $proxyString" -ForegroundColor Green
}

# Uso:
Set-Proxy -Server "192.168.1.100" -Port 8080

💻 Configuración a través de la línea de comandos (netsh)

La utilidad netsh (Network Shell) es una herramienta clásica de la línea de comandos de Windows para gestionar la configuración de red, incluido el proxy para WinHTTP.

Comandos netsh winhttp

Establecer proxy

netsh winhttp set proxy proxy-server="192.168.1.100:8080" bypass-list="localhost;*.local"

Importar configuración desde IE

netsh winhttp import proxy source=ie

Importa la configuración del proxy de Internet Explorer a WinHTTP.

Ver la configuración actual

netsh winhttp show proxy

Restablecer la configuración del proxy

netsh winhttp reset proxy

💡 Consejo: Los comandos netsh winhttp afectan al WinHTTP del sistema, utilizado por Windows Update, PowerShell y muchas aplicaciones del sistema, pero NO afectan a la configuración de Internet Explorer/Edge.

🌐 Variables de entorno en Windows

Muchas utilidades de consola y aplicaciones utilizan variables de entorno para definir el servidor proxy. Esto es especialmente importante para Python, Node.js, Git, curl y otras herramientas de desarrollo.

Variables de proxy estándar

Establecer mediante la línea de comandos (temporal)

set HTTP_PROXY=http://192.168.1.100:8080
set HTTPS_PROXY=http://192.168.1.100:8080
set NO_PROXY=localhost,127.0.0.1,.local

Estas variables solo son válidas en la sesión de consola actual.

Establecer mediante la GUI (permanente)

  1. Abra "Sistema" (Windows + Pausa)
  2. Haga clic en "Configuración avanzada del sistema"
  3. Pestaña "Opciones avanzadas" → "Variables de entorno"
  4. En la sección "Variables de usuario", haga clic en "Crear"
  5. Añada las variables HTTP_PROXY, HTTPS_PROXY

Establecer mediante PowerShell (permanente)

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://192.168.1.100:8080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://192.168.1.100:8080", "User")
[Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1", "User")

Formato con autenticación

set HTTP_PROXY=http://username:password@192.168.1.100:8080
set HTTPS_PROXY=http://username:password@192.168.1.100:8080

⚠️ Los caracteres especiales en la contraseña deben estar codificados en URL (@ → %40, : → %3A)

🎯 Configuración para aplicaciones específicas

Algunas aplicaciones no utilizan la configuración de proxy del sistema y requieren su propia configuración. Veamos las herramientas más populares.

🦊 Firefox

Firefox utiliza su propia configuración de proxy:

  1. Menú → Configuración → Red
  2. Botón "Configurar"
  3. Configuración manual del proxy
  4. Introduzca la dirección y el puerto

📦 Git

Configuración del proxy para Git:

git config --global http.proxy http://192.168.1.100:8080
git config --global https.proxy http://192.168.1.100:8080

🐍 Python pip

Configuración para pip:

pip install package_name --proxy http://192.168.1.100:8080

📦 npm

Configuración para npm:

npm config set proxy http://192.168.1.100:8080
npm config set https-proxy http://192.168.1.100:8080

🎁 ProxyCove — proxies fiables para Windows: Soporte para todos los métodos de autenticación (lista blanca de IP y login:password), funciona con cualquier aplicación, soporte técnico 24/7. Regístrese → y obtenga +$1.3 con el código promocional ARTHELLO

Continuará...

En la siguiente parte: configuración de proxy en Linux (Ubuntu, Debian, CentOS), variables de entorno, configuración de apt/yum a través de proxy

Configuración de proxy en Linux: Ubuntu, Debian, CentOS — Parte 2

En esta parte: Guía detallada para configurar servidores proxy en varias distribuciones de Linux: Ubuntu, Debian, CentOS y RHEL. Cubriremos las variables de entorno del sistema, la configuración a través de archivos, la configuración de los gestores de paquetes apt y yum, y la configuración para aplicaciones específicas. El material está actualizado para 2025.

🐧 Características de la configuración de proxy en Linux

A diferencia de Windows, Linux no tiene un lugar centralizado único para configurar el servidor proxy. En su lugar, se utilizan varios métodos: variables de entorno, archivos de configuración, configuraciones de aplicaciones individuales e interfaces gráficas (en distribuciones de escritorio).

Enfoques principales para la configuración de proxy en Linux

🌐 Variables de entorno

El método más común. Las variables http_proxy, https_proxy y no_proxy son utilizadas por la mayoría de las utilidades de consola.

📝 Archivos de configuración

Archivos como /etc/environment, /etc/profile, ~/.bashrc para configuraciones del sistema y del usuario.

📦 Gestores de paquetes

APT, YUM/DNF requieren una configuración separada en sus archivos de configuración.

🎨 Interfaz gráfica

GNOME, KDE y otros entornos de escritorio proporcionan una GUI para la configuración del proxy (solo en versiones de escritorio).

⚠️ Puntos importantes

  • En Linux no hay un estándar obligatorio para el proxy: cada aplicación puede ignorar la configuración del sistema
  • Las variables de entorno deben establecerse tanto en minúsculas como en mayúsculas (HTTP_PROXY y http_proxy)
  • APT y YUM NO utilizan las variables de entorno del sistema automáticamente
  • Para versiones de servidor (sin GUI), utilice solo la línea de comandos y los archivos de configuración

🔧 Variables de entorno (http_proxy, https_proxy)

Las variables de entorno son la forma estándar de configurar el proxy en Linux para aplicaciones de consola. La mayoría de las utilidades (curl, wget, apt-get con la configuración correcta) leen estas variables.

Variables de proxy principales

Lista de variables principales

Variable Formato Descripción
http_proxy http://proxy:8080 Proxy para tráfico HTTP
https_proxy http://proxy:8080 Proxy para tráfico HTTPS
ftp_proxy http://proxy:8080 Proxy para tráfico FTP
no_proxy localhost,127.0.0.1,.local Direcciones sin proxy (exclusiones)
HTTP_PROXY http://proxy:8080 Duplica http_proxy (mayúsculas)
HTTPS_PROXY http://proxy:8080 Duplica https_proxy (mayúsculas)

Establecimiento temporal (sesión actual)

export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

# Duplicar en mayúsculas por compatibilidad
export HTTP_PROXY="http://192.168.1.100:8080"
export HTTPS_PROXY="http://192.168.1.100:8080"
export FTP_PROXY="http://192.168.1.100:8080"
export NO_PROXY="localhost,127.0.0.1,*.local"

Estas variables solo serán válidas en la sesión de terminal actual.

Con autenticación

export http_proxy="http://username:password@192.168.1.100:8080"
export https_proxy="http://username:password@192.168.1.100:8080"

⚠️ Si la contraseña contiene caracteres especiales, utilice la codificación URL: @ → %40, : → %3A

Verificar variables establecidas

# Mostrar todas las variables de proxy
env | grep -i proxy

# Verificar una variable específica
echo $http_proxy
echo $https_proxy

Deshabilitar proxy

unset http_proxy
unset https_proxy
unset ftp_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY

🌍 Configuración a nivel de sistema (/etc/environment)

El archivo /etc/environment contiene variables de entorno del sistema que se aplican a todos los usuarios y se cargan al arrancar el sistema.

Configuración del sistema permanente

Paso 1: Editar el archivo

sudo nano /etc/environment

Paso 2: Añadir variables

Añada las siguientes líneas al final del archivo:

http_proxy="http://192.168.1.100:8080"
https_proxy="http://192.168.1.100:8080"
ftp_proxy="http://192.168.1.100:8080"
no_proxy="localhost,127.0.0.1,*.local"

HTTP_PROXY="http://192.168.1.100:8080"
HTTPS_PROXY="http://192.168.1.100:8080"
FTP_PROXY="http://192.168.1.100:8080"
NO_PROXY="localhost,127.0.0.1,*.local"

Paso 3: Aplicar cambios

# Reiniciar el sistema (recomendado)
sudo reboot

# O aplicar para la sesión actual
source /etc/environment

💡 Consejo: El archivo /etc/environment no admite la sustitución de variables ni la expansión de comandos. Utilice solo valores simples. Para una lógica más compleja, utilice /etc/profile o /etc/bash.bashrc.

🐧 Configuración en Ubuntu/Debian

Ubuntu y Debian son las distribuciones de Linux más populares. Veamos tanto la configuración a través de la GUI (para versiones de escritorio) como a través de la línea de comandos (para servidores).

🎨 A través de la GUI (Ubuntu Desktop)

Configuración de GNOME

  1. Abra Configuración (Settings)
  2. Seleccione Red (Network)
  3. Haga clic en el icono de engranaje junto a la conexión
  4. Pestaña Proxy
  5. Seleccione Manual
  6. Introduzca la dirección y el puerto para HTTP, HTTPS, FTP, Socks
  7. Haga clic en Aplicar (Apply)

⌨️ A través de la línea de comandos

gsettings (para GNOME)

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '192.168.1.100'
gsettings set org.gnome.system.proxy.http port 8080

🔴 Configuración en CentOS/RHEL

CentOS y Red Hat Enterprise Linux utilizan una estructura de configuración similar. En 2025, muchos están migrando a Rocky Linux y AlmaLinux, donde se aplican los mismos principios.

Configuración del sistema para RHEL-based

Método 1: /etc/profile.d/

Cree un archivo para la configuración del proxy:

sudo nano /etc/profile.d/proxy.sh

Añada el siguiente contenido:

#!/bin/bash

export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

export HTTP_PROXY="http://192.168.1.100:8080"
export HTTPS_PROXY="http://192.168.1.100:8080"
export FTP_PROXY="http://192.168.1.100:8080"
export NO_PROXY="localhost,127.0.0.1,*.local"

Haga el archivo ejecutable: sudo chmod +x /etc/profile.d/proxy.sh

Método 2: /etc/environment

El mismo método que para Ubuntu/Debian: edite /etc/environment

📦 Configuración de APT a través de proxy

Importante: APT (Advanced Package Tool) en Ubuntu/Debian NO utiliza las variables de entorno del sistema automáticamente. Para que funcione a través de un proxy, se requiere una configuración separada.

Configuración del proxy para APT

Método 1: apt.conf.d/ (recomendado)

Cree un archivo de configuración:

sudo nano /etc/apt/apt.conf.d/02proxy

Añada el siguiente contenido:

Acquire::http::Proxy "http://192.168.1.100:8080";
Acquire::https::Proxy "http://192.168.1.100:8080";
Acquire::ftp::Proxy "http://192.168.1.100:8080";

Con autenticación

Acquire::http::Proxy "http://username:password@192.168.1.100:8080";
Acquire::https::Proxy "http://username:password@192.168.1.100:8080";

Método 2: Configuración temporal (un comando)

sudo apt-get -o Acquire::http::proxy="http://192.168.1.100:8080" update

Se aplica solo al comando apt actual.

Verificar configuración de APT

# Mostrar configuración actual de APT
apt-config dump | grep -i proxy

# Prueba de actualización a través del proxy
sudo apt-get update

Exclusiones (sin proxy para algunos hosts)

Acquire::http::Proxy "http://192.168.1.100:8080";
Acquire::http::Proxy::ppa.launchpad.net "DIRECT";

"DIRECT" significa conexión directa sin proxy para el host especificado.

📦 Configuración de YUM/DNF a través de proxy

YUM (para CentOS 7 y anteriores) y DNF (para CentOS 8+, Fedora, Rocky Linux, AlmaLinux) son gestores de paquetes para distribuciones basadas en Red Hat. También requieren una configuración de proxy separada.

Configuración global de YUM/DNF

YUM (CentOS 7 y anteriores)

Edite el archivo de configuración:

sudo nano /etc/yum.conf

Añada en la sección [main]:

[main]
proxy=http://192.168.1.100:8080
proxy_username=your_username
proxy_password=your_password

Si el proxy no requiere autenticación, omita proxy_username y proxy_password.

DNF (CentOS 8+, Fedora, Rocky Linux, AlmaLinux)

Edite el archivo de configuración:

sudo nano /etc/dnf/dnf.conf

Añada en la sección [main]:

[main]
proxy=http://192.168.1.100:8080
proxy_username=your_username
proxy_password=your_password

Configuración para un repositorio específico

Se puede configurar el proxy solo para un repositorio específico en los archivos /etc/yum.repos.d/*.repo:

[epel]
name=Extra Packages for Enterprise Linux 8
baseurl=https://download.fedoraproject.org/pub/epel/8/$basearch
proxy=http://192.168.1.100:8080
proxy_username=username
proxy_password=password

Deshabilitar proxy para un repositorio específico

[local-repo]
name=Local Repository
baseurl=http://192.168.1.50/repo
proxy=_none_

proxy=_none_ deshabilita el proxy para este repositorio.

Verificar configuración

# Para YUM
sudo yum repolist

# Para DNF
sudo dnf repolist

# Mostrar configuración
sudo dnf config-manager --dump | grep -i proxy

👤 Configuración en .bashrc y .profile

Para configuraciones de proxy específicas del usuario que solo se aplican a ese usuario, utilice los archivos .bashrc o .profile en el directorio personal.

Configuración específica del usuario

Editar .bashrc

nano ~/.bashrc

Añada al final del archivo:

# Proxy settings
export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy
export NO_PROXY=$no_proxy

Aplicar cambios:

source ~/.bashrc

Creación de funciones para gestionar el proxy

# Función para habilitar proxy
proxy_on() {
  export http_proxy="http://192.168.1.100:8080"
  export https_proxy="http://192.168.1.100:8080"
  export HTTP_PROXY=$http_proxy
  export HTTPS_PROXY=$https_proxy
  echo "Proxy habilitado"
}

# Función para deshabilitar proxy
proxy_off() {
  unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
  echo "Proxy deshabilitado"
}

# Función para verificar el estado del proxy
proxy_status() {
  echo "http_proxy: $http_proxy"
  echo "https_proxy: $https_proxy"
}

Uso: proxy_on, proxy_off, proxy_status

🛠️ Configuración para aplicaciones (curl, wget, git)

Algunas utilidades populares tienen sus propias formas de configurar proxies o archivos de configuración.

📡 curl

curl utiliza variables de entorno, pero también se puede especificar el proxy en los parámetros:

curl -x http://192.168.1.100:8080 https://example.com

# Con autenticación
curl -x http://user:pass@192.168.1.100:8080 https://example.com

# A través de .curlrc
echo 'proxy = "http://192.168.1.100:8080"' >> ~/.curlrc

📥 wget

wget también utiliza variables de entorno, pero tiene un archivo de configuración:

# ~/.wgetrc
http_proxy = http://192.168.1.100:8080
https_proxy = http://192.168.1.100:8080
use_proxy = on

🔧 git

Git tiene su propio sistema de configuración de proxy:

# Globalmente para todos los repositorios
git config --global http.proxy http://192.168.1.100:8080
git config --global https.proxy http://192.168.1.100:8080

# Para un repositorio específico
git config http.proxy http://192.168.1.100:8080

# Deshabilitar proxy
git config --global --unset http.proxy
git config --global --unset https.proxy

🐳 Docker

Docker requiere la configuración del proxy para el demonio y el cliente:

# /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.1.100:8080"
Environment="HTTPS_PROXY=http://192.168.1.100:8080"
Environment="NO_PROXY=localhost,127.0.0.1"

🎁 ProxyCove — proxies profesionales para Linux: Compatibilidad total con todas las distribuciones, soporte para lista blanca de IP y autenticación, funciona con cualquier aplicación. Regístrese → y obtenga +$1.3 con el código promocional ARTHELLO

¡La parte final está por llegar!

En la parte final: Archivos PAC, configuración automática y solución de problemas típicos

Archivos PAC, configuración automática y solución de problemas — Final

En esta parte final: Guía completa sobre los archivos PAC (Proxy Auto-Configuration), el protocolo WPAD para el descubrimiento automático de proxies, diagnóstico y solución de problemas típicos de proxy en Windows y Linux. Recomendaciones y mejores prácticas finales para 2025.

📜 Qué son los archivos PAC

PAC (Proxy Auto-Configuration) es un archivo JavaScript que determina automáticamente qué servidor proxy usar para una URL específica. Esto permite crear reglas de enrutamiento de tráfico flexibles sin necesidad de configurar manualmente cada cliente.

Ventajas de los archivos PAC

✅ Flexibilidad

Diferentes proxies para diferentes sitios, acceso directo para recursos locales, tolerancia a fallos con múltiples proxies.

✅ Centralización

Un cambio en el archivo PAC se aplica a todos los clientes sin necesidad de reconfigurar cada máquina.

✅ Lógica basada en condiciones

Selección de proxy basada en dominio, subred IP, hora del día, día de la semana y otros factores.

✅ Rendimiento

Balanceo de carga entre múltiples servidores proxy, conmutación automática en caso de fallo.

Cuándo usar archivos PAC

  • Redes corporativas — diferentes proxies para recursos internos y externos
  • Enrutamiento complejo — diferentes proxies para diferentes países o servicios
  • Respaldo — conmutación automática a un proxy de reserva en caso de fallo
  • Optimización — dirigir el tráfico por la ruta más eficiente

💻 Sintaxis y estructura de los archivos PAC

Un archivo PAC es un archivo de texto con la extensión .pac que contiene una función JavaScript: FindProxyForURL(url, host).

Estructura básica

function FindProxyForURL(url, host) {
  // Su lógica aquí
  // Devuelve una cadena con la configuración del proxy
  return "PROXY proxy.example.com:8080";
}

Parámetros de la función

Parámetro Descripción Ejemplo
url URL completa a la que accede el navegador https://example.com/page
host Solo el nombre de dominio de la URL example.com

Valores de retorno

Valor Descripción
DIRECT Conexión directa sin proxy
PROXY host:port Proxy HTTP/HTTPS
SOCKS host:port Proxy SOCKS (v4/v5)
SOCKS5 host:port SOCKS5 explícito
PROXY p1:8080; PROXY p2:8080; DIRECT Múltiples opciones (fallback)

Funciones PAC integradas

Función Descripción
isPlainHostName(host) Comprueba si el host es un nombre simple (sin puntos)
dnsDomainIs(host, domain) Comprueba si el host pertenece a un dominio
localHostOrDomainIs(host, domain) Compara el host con el dominio
isResolvable(host) Comprueba si el host se resuelve en DNS
isInNet(host, pattern, mask) Comprueba si la IP está en una subred
shExpMatch(str, pattern) Coincidencia de patrones (wildcards * y ?)
weekdayRange(day1, day2) Comprueba el día de la semana
dateRange(...) Comprueba el rango de fechas
timeRange(...) Comprueba la hora del día

📚 Ejemplos prácticos de archivos PAC

Ejemplo 1: Proxy simple para todas las solicitudes

function FindProxyForURL(url, host) {
  return "PROXY proxy.company.com:8080";
}

Ejemplo 2: Direcciones locales sin proxy

function FindProxyForURL(url, host) {
  // Hosts locales — conexión directa
  if (isPlainHostName(host) ||
      dnsDomainIs(host, ".local") ||
      isInNet(host, "192.168.0.0", "255.255.0.0") ||
      isInNet(host, "10.0.0.0", "255.0.0.0") ||
      host == "localhost" ||
      host == "127.0.0.1")
  {
      return "DIRECT";
  }

  // Todo lo demás a través del proxy
  return "PROXY proxy.company.com:8080";
}

Ejemplo 3: Diferentes proxies para diferentes dominios

function FindProxyForURL(url, host) {
  // Redes sociales a través de un proxy especial
  if (shExpMatch(host, "*.facebook.com") ||
      shExpMatch(host, "*.twitter.com") ||
      shExpMatch(host, "*.instagram.com"))
  {
      return "PROXY social-proxy.company.com:8080";
  }

  // Streaming de video a través de otro proxy
  if (shExpMatch(host, "*.youtube.com") ||
      shExpMatch(host, "*.netflix.com"))
  {
      return "PROXY video-proxy.company.com:8080";
  }

  // Recursos locales directamente
  if (isInNet(host, "10.0.0.0", "255.0.0.0"))
  {
      return "DIRECT";
  }

  // El resto a través del proxy principal
  return "PROXY main-proxy.company.com:8080";
}

Ejemplo 4: Tolerancia a fallos (Fallback)

function FindProxyForURL(url, host) {
  // Direcciones locales sin proxy
  if (isPlainHostName(host) ||
      isInNet(host, "192.168.0.0", "255.255.0.0"))
  {
      return "DIRECT";
  }

  // Intento a través del proxy principal, luego el de respaldo, luego directo
  return "PROXY proxy1.company.com:8080; " +
         "PROXY proxy2.company.com:8080; " +
         "DIRECT";
}

El navegador intentará conectarse a través de proxy1, si falla, a través de proxy2, y si eso también falla, se conectará directamente.

Ejemplo 5: Enrutamiento dependiente del tiempo

function FindProxyForURL(url, host) {
  // En horario laboral (8:00-18:00) y días laborables
  if (weekdayRange("MON", "FRI") &&
      timeRange(8, 18))
  {
      return "PROXY work-proxy.company.com:8080";
  }

  // Por la noche y fines de semana, otro proxy
  return "PROXY night-proxy.company.com:8080";
}

Ejemplo 6: Configuración corporativa compleja

function FindProxyForURL(url, host) {
  // Hosts locales sin proxy
  if (isPlainHostName(host) ||
      dnsDomainIs(host, ".local") ||
      dnsDomainIs(host, ".company.com") ||
      isInNet(host, "10.0.0.0", "255.0.0.0") ||
      isInNet(host, "172.16.0.0", "255.240.0.0") ||
      isInNet(host, "192.168.0.0", "255.255.0.0") ||
      host == "localhost" ||
      host == "127.0.0.1")
  {
      return "DIRECT";
  }

  // Tráfico HTTPS a través de un proxy SSL especial
  if (url.substring(0, 6) == "https:")
  {
      return "PROXY ssl-proxy.company.com:8443; DIRECT";
  }

  // Contenido multimedia a través de proxy de caché
  if (shExpMatch(url, "*.mp4") ||
      shExpMatch(url, "*.mp3") ||
      shExpMatch(url, "*.jpg") ||
      shExpMatch(url, "*.png"))
  {
      return "PROXY cache-proxy.company.com:3128";
  }

  // HTTP a través del proxy principal con failover
  return "PROXY proxy1.company.com:8080; " +
         "PROXY proxy2.company.com:8080; " +
         "DIRECT";
}

🚀 Despliegue de archivos PAC

Una vez creado el archivo PAC, debe colocarse correctamente y configurarse para que los clientes lo utilicen.

Ubicación del archivo PAC

1. Servidor web (HTTP/HTTPS)

Coloque el archivo proxy.pac en el servidor web:

http://proxy.company.com/proxy.pac
https://proxy.company.com/proxy.pac

⚠️ El tipo MIME debe ser: application/x-ns-proxy-autoconfig

2. Sistema de archivos (file://)

# Windows
file:///C:/proxy.pac
file://\\server\share\proxy.pac

# Linux
file:///etc/proxy.pac

No recomendado para entornos de producción, pero útil para pruebas.

Configuración del tipo MIME en Apache

# En httpd.conf o .htaccess
AddType application/x-ns-proxy-autoconfig .pac

Configuración del tipo MIME en Nginx

# En nginx.conf
types {
  application/x-ns-proxy-autoconfig pac;
}

Configuración de clientes

Windows

Configuración → Red e Internet → Proxy → "Usar un script de configuración" → Introduzca la URL del archivo PAC

Linux (GNOME)

gsettings set org.gnome.system.proxy mode 'auto'
gsettings set org.gnome.system.proxy autoconfig-url 'http://proxy.company.com/proxy.pac'

Firefox

Configuración → Red → Configurar → Configuración automática de proxy → URL de autoconfiguración

🔍 WPAD — Descubrimiento automático de proxy

WPAD (Web Proxy Auto-Discovery Protocol) es un protocolo que permite a los navegadores encontrar automáticamente un archivo PAC. En 2025, es compatible con todos los navegadores y sistemas operativos principales.

Cómo funciona WPAD

  1. Método DHCP: El cliente solicita la opción 252 al servidor DHCP, que devuelve la URL del archivo PAC
  2. Método DNS: El cliente intenta encontrar el host wpad.domain.com a través de DNS
  3. Carga de PAC: Si se encuentra, el cliente intenta cargar http://wpad.domain.com/wpad.dat

Configuración de WPAD a través de DNS

Cree un registro DNS A o CNAME:

wpad.company.com. IN A 192.168.1.100
# o
wpad.company.com. IN CNAME proxy-server.company.com.

Coloque el archivo PAC en la dirección: http://wpad.company.com/wpad.dat

Configuración de WPAD a través de DHCP

En la configuración del servidor DHCP, añada la opción 252:

# ISC DHCP (dhcpd.conf)
option wpad code 252 = text;
option wpad "http://proxy.company.com/proxy.pac";

⚠️ Problemas de seguridad de WPAD

  • Secuestro de WPAD: Un atacante puede suplantar la respuesta de WPAD y redirigir el tráfico a través de su propio proxy
  • Spoofing de DNS: Suplantación del registro DNS wpad.domain.com
  • Recomendación: Utilice WPAD solo en redes corporativas de confianza
  • Alternativa: Especificar explícitamente la URL del archivo PAC es más seguro que el descubrimiento automático

🔧 Solución de problemas: diagnóstico de fallos

Problemas y soluciones comunes

Problema 1: El proxy no funciona

Síntomas: Los sitios web no se abren, errores de conexión

Soluciones:
  • Compruebe la accesibilidad del servidor proxy: ping proxy-host
  • Verifique el puerto: telnet proxy-host 8080 o nc -zv proxy-host 8080
  • Asegúrese de que el proxy no esté bloqueado por el cortafuegos
  • Compruebe la dirección y el puerto correctos en la configuración

Problema 2: Error 407 (Proxy Authentication Required)

Síntomas: Solicitud de autenticación, código de error 407

Soluciones:
  • Verifique el nombre de usuario y la contraseña correctos
  • Asegúrese de usar el formato correcto: http://user:pass@proxy:port
  • Compruebe si las credenciales han caducado
  • Para autenticación por IP: asegúrese de que su IP esté en la lista blanca
  • Compruebe si su dirección IP externa ha cambiado

Problema 3: Rendimiento lento a través del proxy

Síntomas: Carga lenta de páginas, tiempos de espera agotados

Soluciones:
  • Compruebe la velocidad del proxy: curl -x proxy:port -w "@curl-format.txt" https://example.com
  • Pruebe con otro servidor proxy (si está disponible)
  • Verifique la carga del servidor proxy
  • Asegúrese de no usar el proxy para recursos locales (añada exclusiones)
  • Compruebe la configuración de DNS (un DNS lento puede ralentizar el proxy)

Problema 4: El archivo PAC no funciona

Síntomas: La configuración automática no se aplica

Soluciones:
  • Compruebe la accesibilidad del archivo PAC: abra la URL en el navegador
  • Asegúrese de que el tipo MIME sea correcto: application/x-ns-proxy-autoconfig
  • Verifique la sintaxis de JavaScript en el archivo PAC
  • Utilice herramientas de prueba de PAC: pactester (Linux) o DevTools del navegador
  • Compruebe si hay caché: borre la caché del navegador

🧪 Pruebas de proxy

Herramientas de prueba

Comprobación de conexión (curl)

# Comprobar proxy HTTP
curl -x http://proxy:8080 -I https://www.google.com

# Con autenticación
curl -x http://user:pass@proxy:8080 https://www.google.com

# Mostrar IP externa (comprobar que el proxy funciona)
curl -x http://proxy:8080 https://ifconfig.me
curl -x http://proxy:8080 https://api.ipify.org

Verificar puerto (netcat)

# Linux
nc -zv proxy-host 8080

# Windows (PowerShell)
Test-NetConnection -ComputerName proxy-host -Port 8080

Prueba de archivo PAC (Linux)

# Instalar pactester
sudo apt-get install libpacparser1 # Ubuntu/Debian

# Probar archivo PAC
pactester -p /path/to/proxy.pac -u https://www.google.com

Verificar configuración actual (Windows PowerShell)

# Mostrar configuración de proxy actual
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyEnable, ProxyServer, AutoConfigURL

# Mostrar proxy WinHTTP
netsh winhttp show proxy

Herramientas en línea

  • whatismyip.com — Comprobar su IP externa
  • ifconfig.me — Muestra la IP en formato de consola
  • browserleaks.com/proxy — Información detallada del proxy
  • ipleak.net — Comprobar fugas de DNS, WebRTC

🔒 Seguridad al usar proxies

Recomendaciones de seguridad

✅ Use proxies HTTPS

Un proxy HTTPS cifra los datos entre el cliente y el servidor proxy, protegiéndolos de interceptaciones.

✅ No guarde contraseñas en texto plano

Utilice gestores de contraseñas, variables de entorno o archivos de configuración cifrados.

✅ Verifique los certificados

Al usar un proxy MITM, asegúrese de confiar en el certificado raíz del servidor proxy.

✅ Minimice las fugas de DNS

Utilice DNS-over-HTTPS o configure las consultas DNS a través del proxy para evitar fugas.

❌ Qué evitar

  • No utilice proxies públicos gratuitos para datos confidenciales
  • No ignore las advertencias de certificados SSL
  • No guarde contraseñas de proxy en el historial de comandos (use un espacio antes del comando en bash)
  • No utilice proxies HTTP sin cifrado para transmitir contraseñas

🎯 Mejores prácticas 2025

1️⃣ Elija el tipo de proxy correcto

Para scraping y análisis web: Proxies residenciales o móviles
Para redes corporativas: Proxies de centro de datos con lista blanca de IP
Para eludir bloqueos geográficos: Proxies residenciales del país deseado

2️⃣ Utilice archivos PAC para enrutamiento complejo

Los archivos PAC son ideales para entornos corporativos donde diferentes recursos requieren diferentes proxies. Proporcionan gestión centralizada y flexibilidad.

3️⃣ Configure exclusiones

Las direcciones locales (localhost, 127.0.0.1, subredes privadas) no deben pasar por el proxy. Esto acelerará el acceso a recursos locales.

4️⃣ Implemente tolerancia a fallos

En los archivos PAC, utilice opciones de fallback: varios proxies con posibilidad de conexión directa en caso de indisponibilidad de todos los proxies.

5️⃣ Monitoreo y registro

Compruebe periódicamente el funcionamiento del proxy, supervise la velocidad de conexión y la disponibilidad. Registre los errores para una respuesta rápida.

6️⃣ Documente la configuración

Cree documentación con descripciones de todas las configuraciones de proxy, archivos PAC, exclusiones y procedimientos de recuperación. Esto ahorrará tiempo en la solución de problemas.

📝 Conclusiones y recomendaciones

Resumen de la serie de artículos

Windows

En Windows, utilice la GUI para configuraciones sencillas, PowerShell para automatización y el registro para ajustes finos. Las variables de entorno son necesarias para las utilidades de consola.

Linux

En Linux, el método principal es mediante variables de entorno en /etc/environment o ~/.bashrc. No olvide la configuración separada para APT y YUM/DNF.

Archivos PAC

Los archivos PAC ofrecen la máxima flexibilidad para escenarios complejos. Úselos en entornos corporativos y para enrutamiento de tráfico inteligente.

Solución de problemas

La mayoría de los problemas se resuelven comprobando la accesibilidad del proxy, la corrección de las credenciales y la configuración. Utilice curl, netcat y las DevTools del navegador para el diagnóstico.

🏆 ProxyCove — Su elección ideal

🌍

Cobertura global

195+ países

Alta velocidad

Hasta 10 Gbps

🔐

Seguridad

IP + Login/Pass

👨‍💼

Soporte 24/7

En español

💎

Precios accesibles

Desde $1.5/GB

📊

API

Integración completa

¿Listo para empezar a trabajar con proxies profesionales?

¡Regístrese en ProxyCove, deposite fondos con el código promocional ARTHELLO y obtenga un regalo de +$1.3!