wget lee un proxy de cuatro lugares, verificados en un orden fijo. Las banderas de línea de comandos anulan un archivo .wgetrc, que anula las variables de entorno http_proxy/https_proxy — si te equivocas en el orden de precedencia, un proxy que crees que está activo se anula en silencio.
La autenticación del proxy es un par de banderas, verificado en vivo en esta guía.--proxy-user= y --proxy-password= se autentican con HTTP Basic auth; probado contra un proxy real, las credenciales correctas devolvieron 200 y las incorrectas devolvieron Autenticación del Proxy Requerida.
wget no tiene soporte nativo para SOCKS5 — confirmado al reproducir el mismo error. Apuntar http_proxy a una URL socks5h:// falla inmediatamente con Esquema no soportado; un proxy SOCKS necesita un puente local de HTTP a SOCKS frente a wget, no una bandera de wget.
wget no vuelve a intentar una conexión a un proxy rechazada por defecto. Una prueba en vivo muestra exactamente un intento de conexión en Conexión rechazada a menos que también se pase --retry-connrefused — un detalle que la mayoría de las guías sobre wget y proxy omiten.
no_proxy exime hosts específicos sin tocar el resto de la configuración. Es una lista separada por comas de dominios que omiten cualquier proxy que de otro modo esté configurado, verificada antes de que wget realice la conexión.
wget no tiene concepto de rotación de proxies. Marca exactamente un proxy configurado por ejecución; cualquier cosa que se asemeje a la rotación de IP debe provenir de un bucle de shell, una puerta de enlace rotativa o una herramienta externa que envuelva wget.
Introducción: apuntando un descargador de un solo propósito a través de un proxy
wget es una herramienta de línea de comandos para recuperar archivos a través de HTTP, HTTPS y FTP, y por defecto se conecta directamente al host que está en la URL — enrutar esa conexión a través de un proxy significa informar a wget sobre el proxy a través de exactamente cuatro superficies: una bandera de línea de comandos, un ~/.wgetrc por usuario, un /etc/wgetrc a nivel del sistema, o las variables de entorno http_proxy/https_proxy. Cada superficie está documentada en el manual oficial de GNU Wget, y cada una se demuestra a continuación contra un proxy real y en funcionamiento en lugar de ser descrita de memoria.
Esta guía verifica cada afirmación que hace: la autenticación del proxy se prueba contra un intercambio real 401/407, el comportamiento de reintento se prueba contra una conexión rechazada real, y la limitación de SOCKS5 se reproduce como un mensaje de error real en lugar de repetirse de oídas. Donde wget no puede hacer algo — rotar IPs, hablar SOCKS5 de manera nativa — eso se expresa claramente en lugar de ser pasado por alto.
Instalar wget
wget viene preinstalado en la mayoría de las distribuciones de Linux y está disponible a través de los administradores de paquetes estándar en todas partes.
Confirma la instalación y verifica la versión antes de depender de banderas introducidas en versiones más recientes (los ejemplos de esta guía se verificaron contra GNU Wget 1.21.4):
wget--version
Echa un vistazo rápido
Un solo proxy frente a wget aún significa que cada descarga proviene de una IP — el gateway residencial rotativo de Nstproxy le da a wget un solo host:puerto al que apuntar mientras que la IP de salida cambia del lado del servidor, sin agregar lógica de rotación a tu script de descarga.
Al ejecutarse contra un proxy local real (autenticación básica habilitada) con no_proxy desactivado, este patrón exacto devolvió un real HTTP/1.1 200 OK y descargó el archivo objetivo; el mismo comando con una dirección de proxy inalcanzable falló con Conexión rechazada, confirmando que la configuración del proxy está genuinamente en la ruta de la solicitud en lugar de ser ignorada en silencio.
Para una configuración que debe persistir entre sesiones sin exportar variables de shell cada vez, el archivo ~/.wgetrc por usuario utiliza nombres de palabras clave diferentes (en minúsculas, separados por guiones bajos) que las variables de entorno, y necesita use_proxy = on para activarlas:
Este archivo exacto, cargado a través de WGETRC=~/.wgetrc wget ..., se probó contra el mismo proxy local y produjo la misma respuesta 200 exitosa sin otras banderas ni variables de entorno establecidas — confirmando que estos son los nombres de palabra clave que funcionan, no solo opciones que parecen plausibles. Un /etc/wgetrc a nivel de sistema (propiedad del root, se aplica a todos los usuarios de la máquina) utiliza la misma sintaxis de palabras clave; la única diferencia es el alcance.
Las banderas de línea de comando tienen prioridad sobre ambos archivos, lo que las convierte en la opción correcta para una sobreescritura puntual sin tocar ninguna configuración persistente:
wget --no-proxy https://example.com/file.zip
Autenticar el proxy y eximir hosts específicos
--proxy-user= y --proxy-password= establecen las credenciales del proxy directamente en la línea de comando, y wget las codifica con autenticación básica HTTP antes de enviarlas al proxy:
Probado contra un proxy autenticado real, las credenciales correctas produjeron una respuesta normal 200 y una descarga completa del archivo; el mismo comando con la contraseña incorrecta falló inmediatamente con Fallo de túnel proxy: Se requiere autenticación de proxy — el verdadero intercambio 407, no una descripción de uno. Si una contraseña de proxy contiene caracteres que son especiales en un shell ($, !, espacios), cita todo el valor de la bandera en lugar de incrustar la contraseña sin procesar en la forma de URL, ya que un carácter no escapado allí es una fuente común de un fallo de autenticación que parece una contraseña incorrecta pero en realidad es un problema de análisis.
no_proxy exime dominios específicos de cualquier proxy configurado, independientemente de cuál de las cuatro superficies estableció ese proxy:
Las solicitudes a hosts que coinciden con esa lista se conectan directamente, eludiendo completamente el proxy — útil para enrutar descargas externas a través de un proxy mientras se deja solos los puntos finales internos o ya rápidos.
Patrones avanzados: reintentos, tiempos de espera y lo que realmente requiere SOCKS5
El comportamiento de reintento predeterminado de wget es fácil de malinterpretar: --tries=N establece cuántos intentos hacer, pero una conexión que falla con "Conexión rechazada" no se reintenta por defecto en absoluto — probado en vivo, una conexión rechazada hizo exactamente un intento y se rindió, incluso con --tries=3 establecido. Obtener reintentos en una conexión rechazada requiere --retry-connrefused explícitamente:
Con esa bandera agregada, el mismo escenario de conexión rechazada produjo tres intentos etiquetados ("(intento: 2)", "(intento: 3)") con un mensaje de "Reintentando." y un retroceso --waitretry entre ellos antes de rendirse — el comportamiento que la mayoría de las guías asumen que es el predeterminado, cuando no lo es. --timeout=SECONDS (o los más específicos --connect-timeout/--read-timeout) limita cuánto tiempo espera cualquier intento único, lo que importa para un proxy que se queda colgado en lugar de rechazar activamente.
SOCKS5 es el único caso que wget no puede manejar por su cuenta: apuntar http_proxy a una URL socks5h:// falla inmediatamente con Error al analizar la URL del proxy socks5h://...: Esquema no soportado. — el soporte de proxy de wget es solo para HTTP/HTTPS/FTP, confirmado al reproducir exactamente ese error en lugar de repetir la afirmación de otro artículo. Enrutar wget a través de un proxy SOCKS5 significa ejecutar una herramienta local que expone un backend SOCKS como un proxy HTTP simple (o un envoltorio capaz de SOCKS como tsocks/proxychains) y apuntar http_proxy de wget a ese puente local en lugar de al proxy SOCKS directamente.
Nstproxy es un proveedor de infraestructura de proxy cuyo gateway soporta HTTP, HTTPS y SOCKS5 en el mismo canal, lo que elude completamente la brecha wget-SOCKS5 para cualquiera que pueda elegir el modo HTTP en el gateway en lugar de SOCKS5 en la capa wget. Su línea Residential Lite se adapta a descargas wget recurrentes o a granel que necesitan evitar que una sola IP acumule un bloqueo o historial de reducción de velocidad: paquetes prepagados que comienzan en 10GB por $10 (alrededor de $1.00/GB), respaldados por una piscina que el proveedor afirma tiene más de 50 millones de IPs residenciales en más de 200 países y regiones con una tasa de éxito del 99.5%, sin renovación automática de suscripción. El intercambio a considerar antes de adoptarlo: Residential Lite está diseñado para volúmenes de descarga sostenidos y sensibles al costo en lugar de la latencia mínima posible por solicitud, por lo que una carga de trabajo construida en torno a un puñado de descargas críticas de latencia debería compararla con una línea residencial premium o de centro de datos.
Una dirección de gateway en lugar de un script de rotación — wget en sí no tiene lógica de rotación, así que un host:puerto de gateway fijo que rota las IPs de salida del lado del servidor elimina la necesidad de envolver wget en un bucle de shell sobre una lista de IPs.
El modo HTTP evita completamente la brecha SOCKS5 — dado que el mismo canal atiende HTTP, HTTPS y SOCKS5, elegir el modo HTTP se conecta directamente al soporte nativo de http_proxy/https_proxy de wget sin necesidad de herramienta de puente.
Funciona con las cuatro superficies de proxy de wget: las mismas credenciales de puerta de enlace se colocan en variables de entorno, .wgetrc, o --proxy-user/--proxy-password, exactamente como cualquier otro proxy HTTP autenticado.
Límites honestos del soporte de proxies de wget
wget no tiene soporte nativo para SOCKS5 y no tiene rotación integrada, y ambas son verdaderas lagunas en lugar de opciones de configuración que esperan ser descubiertas: las soluciones alternativas mencionadas (un puente SOCKS, una puerta de enlace externa o un bucle de shell) son genuinamente externas a wget, no son flags ocultos. wget tampoco gestiona un jar de cookies por solicitud de la manera en que lo hace un navegador o un requests.Session() automáticamente; una descarga restringida por inicio de sesión necesita --load-cookies/--save-cookies configurados explícitamente, ya sea que se use proxy o no. Finalmente, un proxy que realice intercepción TLS (común en algunos proxys corporativos o de seguridad) puede romper descargadas HTTPS sin --no-check-certificate de maneras que parecen idénticas a una mala configuración SSL no relacionada, por lo que evaluar el proxy antes, probando la misma URL sin el proxy, ahorra tiempo en comparación con depurar errores de certificado primero.
Solución de problemas comunes de errores de proxy en wget
Un mensaje de Proxy tunneling failed: Proxy Authentication Required es el resultado directo de credenciales de proxy incorrectas o faltantes, confirmado arriba al enviar intencionalmente la contraseña incorrecta y obtener exactamente este mensaje de vuelta: verifique --proxy-user/--proxy-password (o sus equivalentes en .wgetrc/entorno) por errores tipográficos o caracteres de shell no escapados primero. Un Connection refused simple en el host proxy significa que wget nunca alcanzó el proxy en absoluto: host incorrecto, puerto incorrecto o el servicio proxy está caído, y, según el comportamiento de reintento verificado anteriormente, wget no intentará automáticamente volver a intentar ese fracaso específico a menos que se configure --retry-connrefused, por lo que un script que parece "renunciar instantáneamente" a un proxy inestable se comporta exactamente como se documenta, no está funcionando mal. Un error de Unsupported scheme que menciona socks5h:// o socks5:// significa que se le entregó una URL de proxy SOCKS a un flag o variable que solo acepta HTTP/HTTPS/FTP; la solución es un puente HTTP local frente al proxy SOCKS, no un flag diferente de wget. Un error de SSL/certificado a través de un proxy que no se produce sin el proxy generalmente apunta a la intercepción TLS en el lado del proxy en lugar del sitio objetivo: probar la conexión directa es la forma más rápida de aislar de qué lado proviene realmente el problema del certificado.
Conclusión
Hacer que wget use un proxy es un flag, un par de variables de entorno o un bloque .wgetrc: la parte más difícil es saber cuál de las cuatro superficies tiene prioridad, que la autenticación está a un par de flags de autenticación básica de distancia, y que dos cosas específicas (SOCKS5, rotación de IP) son verdaderas lagunas en lugar de conocimiento faltante. Cada afirmación anterior fue verificada contra un proxy en vivo o el binario instalado en lugar de repetida de otra guía, incluyendo los dos comportamientos: el predeterminado sin reintentos en caso de rechazo y el error de SOCKS5, que son los más fáciles de malinterpretar.
No: el soporte de proxy incorporado de wget solo reconoce URLs de proxies HTTP, HTTPS y FTP, y apuntarlo a una dirección socks5h:// falla de inmediato con un error de "Unsupported scheme", por lo que un proxy SOCKS5 necesita un puente local HTTP-a-SOCKS o una herramienta envoltura consciente de SOCKS frente a wget.
P: ¿Cómo hago que wget omita el proxy para ciertos sitios?
Establezca la variable de entorno no_proxy en una lista separada por comas de dominios, como no_proxy="internal.example.com,.corp.example.com", y wget conecta directamente a cualquier host que coincida con esa lista independientemente de qué proxy esté configurado de otra manera.
P: ¿Por qué falla wget con un error de autenticación de proxy?
Un mensaje de Proxy tunneling failed: Proxy Authentication Required significa que el proxy rechazó las credenciales pasadas a través de --proxy-user/--proxy-password (o sus equivalentes en .wgetrc/variables de entorno): verifique si hay errores tipográficos o caracteres especiales no escapados en la contraseña primero.
P: ¿wget reintenta automáticamente si se rechaza la conexión proxy?
No por defecto: una conexión rechazada por el host proxy obtiene exactamente un intento a menos que --retry-connrefused se agregue explícitamente junto con --tries, que es una fuente común de scripts que parecen renunciar instantáneamente a un proxy temporalmente inalcanzable.
P: ¿Qué toma prioridad: un flag de proxy en la línea de comandos o la variable de entorno http_proxy?
Las banderas de la línea de comandos ganan, seguidas de un archivo .wgetrc, con las variables de entorno http_proxy/https_proxy aplicadas al final; por lo tanto, una bandera como --no-proxy en la línea de comandos anula un proxy establecido en el entorno para esa única ejecución sin necesidad de desconfigurar la variable.
P: ¿Puede wget rotar entre múltiples proxies por sí mismo?
No — wget marca exactamente un proxy configurado por invocación y no tiene lógica de rotación incorporada, por lo que rotar IPs a través de múltiples llamadas a wget requiere ya sea un script de shell envolvente que cicla a través de una lista de proxies o un gateway de proveedor que rota la IP de salida en el servidor detrás de una única dirección fija.
Marcus Chen
Aug. 6th 2026
110M+ IP reales con 99.9% de acceso exitoso
Respuesta media ultrarrapida ~0.5s para tareas de alta concurrencia
Desde solo $0.1/GB
Acceso inmediato a pools premium de proxies residenciales, datacenter, IPv6 e ISP.