Configuración de proxy del navegador: guía de SOCKS5, HTTP y HTTPS
Guía completa para configurar proxies SOCKS5, HTTP y HTTPS con credenciales integradas, coincidencia de geolocalización y enrutamiento selectivo.
Prefieres la documentación del producto mantenida?
Este artículo tiene una página equivalente en el centro de documentación. Usa los docs para el flujo canónico, las flags actuales y la referencia duradera.
Introducción
Un perfil de huella digital por sí solo no es suficiente para una identidad de navegador consistente. Tu dirección IP, comportamiento DNS y metadatos geográficos deben alinearse con la identidad que tu perfil presenta. Si tu perfil dice "usuario de Windows en Berlín" pero tu IP se resuelve a un centro de datos en Virginia, la inconsistencia es obvia.
BotBrowser proporciona soporte mejorado de proxy integrado directamente en el motor del navegador. A diferencia de Chromium estándar, BotBrowser acepta credenciales integradas en las URL de proxy, deriva automáticamente configuraciones geográficas desde la IP de tu proxy y soporta protocolos SOCKS5, SOCKS5H, HTTP y HTTPS. Esta guía cubre cada aspecto de la configuración de proxy, desde la configuración básica hasta el enrutamiento selectivo avanzado.
Impacto en la privacidad
Sin un proxy configurado correctamente, tu dirección IP real es visible para cada sitio que visitas. Las direcciones IP revelan tu ISP, ubicación física aproximada y pueden correlacionarse entre sesiones para construir un perfil de rastreo persistente.
Incluso al usar un proxy, las malas configuraciones pueden socavar tu privacidad. Las consultas DNS pueden filtrarse fuera del túnel del proxy, revelando tu actividad de navegación a tu ISP. Los candidatos ICE de WebRTC pueden exponer tu IP real a través de solicitudes STUN que viajan fuera de la ruta del proxy. Las discrepancias de zona horaria y locale entre tu identidad declarada y la geolocalización de tu IP crean inconsistencias que los sistemas de rastreo pueden marcar.
BotBrowser aborda todas estas preocupaciones en un modelo de configuración unificado. Cuando estableces --proxy-server, BotBrowser detecta automáticamente la IP pública del proxy y deriva zona horaria, locale e idioma para coincidir. Esto significa que un solo flag puede alinear toda tu identidad geográfica.
Contexto técnico
Cómo funciona el proxy del navegador
Cuando un navegador usa un proxy, el tráfico HTTP y HTTPS se reenvía a través del servidor proxy en lugar de conectarse directamente al destino. El destino ve la dirección IP del proxy, no la tuya.
Diferentes protocolos de proxy manejan esto de forma diferente:
SOCKS5 opera en la capa de transporte (Capa 5). Reenvía conexiones TCP sin procesar y opcionalmente maneja la resolución DNS en el lado del proxy (SOCKS5H). SOCKS5 soporta tanto tráfico TCP como UDP, convirtiéndolo en el protocolo más versátil para privacidad.
Proxies HTTP usan el método CONNECT para establecer un túnel para tráfico HTTPS. El proxy ve el nombre de host de destino pero no el contenido cifrado. Los proxies HTTP no manejan tráfico UDP.
Proxies HTTPS cifran la conexión entre tu navegador y el servidor proxy mismo. Esto previene que tu ISP vea qué comandos de proxy envías, añadiendo una capa de confidencialidad a la conexión proxy.
Manejo de credenciales en Chromium estándar vs. BotBrowser
El flag --proxy-server de Chromium estándar acepta solo la dirección del proxy sin credenciales. La autenticación requiere manejo separado a través de prompts del sistema o API específicas del framework como page.authenticate(). Esto es inconveniente y puede interferir con la detección geográfica automática de BotBrowser.
BotBrowser extiende --proxy-server para aceptar credenciales integradas directamente en la URL:
protocol://username:password@host:port
Esto elimina la necesidad de pasos de autenticación separados y mantiene toda la configuración de proxy en un solo flag.
Tipos de proxy soportados y configuración
BotBrowser soporta cuatro protocolos de proxy a través del flag --proxy-server:
| Protocolo | Formato URL | Caso de uso |
|---|---|---|
| SOCKS5 | socks5://user:pass@host:port | Propósito general, tráfico TCP |
| SOCKS5H | socks5h://user:pass@host:port | Resolución DNS dentro del túnel |
| HTTP | http://user:pass@host:port | Ampliamente disponible, tráfico HTTP/HTTPS |
| HTTPS | https://user:pass@host:port | Conexión proxy cifrada |
SOCKS5 vs. SOCKS5H
La diferencia entre socks5:// y socks5h:// es importante. Con socks5://, la resolución DNS ocurre localmente en tu máquina antes de que la conexión se envíe a través del proxy. Con socks5h://, el nombre de host se envía al servidor proxy, que resuelve DNS en tu nombre. Para privacidad, socks5h:// es la mejor opción porque previene que las consultas DNS se filtren a tu resolver local.
Nombres de usuario estructurados en proxy
Algunos proveedores de proxy codifican instrucciones de enrutamiento dentro del nombre de usuario usando separadores como comas o pipes. BotBrowser soporta estos nombres de usuario estructurados:
--proxy-server=socks5://user_abc,type_mobile,country_GB,session_1234:password@portal.proxy.example.com:1080
Esto es común con proveedores de proxy residencial que enrutan tráfico basado en parámetros integrados en las credenciales.
Enfoque de BotBrowser para la integración de proxy
Alineación geográfica automática
Cuando BotBrowser se conecta a través de un proxy, detecta la IP pública del proxy y configura automáticamente:
- Zona horaria: derivada de la geolocalización de la IP
- Locale: coincidente con el país del proxy
- Idiomas: establecidos basándose en la región del proxy
- Geolocalización: coordenadas aproximadas desde la IP
Esto significa que un lanzamiento básico con solo --proxy-server ya produce una identidad geográficamente consistente:
chrome --bot-profile="/path/to/profile.enc" \
--proxy-server=socks5://user:pass@de-proxy:1080
BotBrowser detectará la IP alemana y establecerá zona horaria a Europe/Berlin, locale a de-DE e idiomas a de-DE,de,en automáticamente.
Anulaciones geográficas manuales
Cuando necesites configuraciones geográficas específicas que difieran de lo que la IP sugiere, usa los flags de anulación:
chrome --bot-profile="/path/to/profile.enc" \
--proxy-server=socks5://user:pass@proxy:1080 \
--bot-config-timezone=America/New_York \
--bot-config-locale=en-US \
--bot-config-languages=en-US,en \
--bot-config-location=40.7128,-74.0060
Los flags CLI tienen la máxima prioridad de configuración y anulan tanto la configuración del perfil como los valores auto-detectados.
Omitir la búsqueda de IP con --proxy-ip
Si ya conoces la IP pública de tu proxy, puedes omitir la búsqueda de IP por página con el flag --proxy-ip (ENT Tier1):
chrome --bot-profile="/path/to/profile.enc" \
--proxy-server=socks5://user:pass@proxy:1080 \
--proxy-ip="203.0.113.1"
Esto elimina la solicitud de detección de IP en cada carga de página, mejorando la velocidad de navegación.
Enrutamiento selectivo de proxy con --proxy-bypass-rgx
El flag --proxy-bypass-rgx (PRO) te permite enrutar URLs específicas directamente en lugar de a través del proxy. Esto es útil para reducir el ancho de banda del proxy en recursos estáticos:
chrome --bot-profile="/path/to/profile.enc" \
--proxy-server=socks5://user:pass@proxy:1080 \
--proxy-bypass-rgx="\.(js|css|png|jpg|svg)(\?|$)"
El patrón usa sintaxis regex RE2 y coincide contra tanto el nombre de host como la ruta completa de la URL.
Importante para uso en JavaScript: no incluyas comillas de shell dentro del valor:
// Correcto
launchArgs.push('--proxy-bypass-rgx=\\.js($|\\?)');
// Incorrecto - las comillas se vuelven parte del regex
launchArgs.push('--proxy-bypass-rgx="\\.js$"');
Configuración y uso
Configuración básica con Playwright
const { chromium } = require('playwright-core');
(async () => {
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy-host:1080',
],
headless: true,
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();
})();
Configuración con Puppeteer y anulaciones geográficas
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@de-proxy:1080',
'--bot-config-timezone=Europe/Berlin',
'--bot-config-locale=de-DE',
'--bot-config-languages=de-DE,de,en',
],
headless: true,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();
})();
Configuraciones comunes por región
| Región | Zona horaria | Locale | Idiomas |
|---|---|---|---|
| Este de EE.UU. | America/New_York | en-US | en-US,en |
| Oeste de EE.UU. | America/Los_Angeles | en-US | en-US,en |
| Reino Unido | Europe/London | en-GB | en-GB,en |
| Alemania | Europe/Berlin | de-DE | de-DE,de,en |
| Japón | Asia/Tokyo | ja-JP | ja,en |
| Brasil | America/Sao_Paulo | pt-BR | pt-BR,pt,en |
| Corea del Sur | Asia/Seoul | ko-KR | ko-KR,ko,en |
Servicio de detección de IP personalizado
Si ejecutas tu propio endpoint de detección de IP, configúralo con --bot-ip-service:
chrome --bot-profile="/path/to/profile.enc" \
--proxy-server=socks5://user:pass@proxy:1080 \
--bot-ip-service="https://ip.example.com"
Puedes proporcionar múltiples endpoints como lista separada por comas. BotBrowser los ejecuta en paralelo y usa la respuesta más rápida:
--bot-ip-service="https://ip1.example.com,https://ip2.example.com"
Verificación
Después de lanzar BotBrowser con un proxy, verifica tu configuración:
const page = await context.newPage();
// Verificar IP pública
await page.goto('https://httpbin.org/ip');
const ipData = await page.textContent('body');
console.log('Public IP:', ipData);
// Verificar zona horaria
const tz = await page.evaluate(() =>
Intl.DateTimeFormat().resolvedOptions().timeZone
);
console.log('Timezone:', tz);
// Verificar idioma
const lang = await page.evaluate(() => navigator.language);
console.log('Language:', lang);
// Verificar locale
const locale = await page.evaluate(() =>
Intl.NumberFormat().resolvedOptions().locale
);
console.log('Locale:', locale);
Confirma que:
- La IP coincide con la dirección esperada de tu proxy
- La zona horaria se alinea con la región geográfica del proxy
- El idioma y locale son consistentes con la zona horaria
- No hay fugas DNS visibles (consulta la guía de Prevención de fugas DNS)
Mejores prácticas
-
Usa SOCKS5H para privacidad DNS. El protocolo
socks5h://resuelve DNS a través del proxy, previniendo que las consultas DNS lleguen a tu ISP local. -
Deja que BotBrowser auto-detecte la geografía. A menos que necesites anulaciones específicas, la detección automática basada en IP produce resultados consistentes con menos configuración.
-
Codifica en URL los caracteres especiales en contraseñas. Caracteres como
@,#y%deben codificarse. Por ejemplo,p@ssse convierte enp%40ss. -
Combina con --bot-local-dns. Para máxima privacidad DNS, usa el resolver DNS local junto con tu configuración de proxy.
-
Prueba con curl primero. Antes de configurar BotBrowser, verifica la conectividad del proxy:
curl --proxy socks5://user:pass@host:port https://httpbin.org/ip. -
Usa --proxy-ip cuando la IP sea conocida. Esto elimina la sobrecarga de búsqueda por página y acelera la navegación.
Preguntas frecuentes
¿Qué protocolo de proxy debería usar? SOCKS5H es recomendado para la mayoría de los casos de uso. Soporta tráfico TCP, maneja la resolución DNS a través del proxy y funciona con la más amplia variedad de proveedores de proxy.
¿Puedo usar un proxy que requiera lista blanca de IP? Sí. Asegura que la IP de tu máquina esté en la lista blanca del proveedor de proxy, luego usa la URL del proxy sin credenciales si el proveedor autentica por IP.
¿BotBrowser soporta encadenamiento de proxies?
BotBrowser se conecta al proxy especificado en --proxy-server. Si necesitas encadenamiento de proxies, configúralo en el lado de la infraestructura del proxy.
¿Por qué mi zona horaria no coincide con la ubicación de mi proxy?
Si estableciste --bot-config-timezone manualmente, anula la detección automática. Elimina la anulación manual para dejar que BotBrowser derive la zona horaria desde la IP del proxy.
¿Puedo usar diferentes proxies para diferentes pestañas?
Sí. Usa browser.newContext({ proxy: ... }) de Playwright para asignar diferentes proxies por contexto. Consulta Cambio dinámico de proxy para más detalles.
¿Qué pasa si la conexión del proxy falla? BotBrowser no recurrirá a una conexión directa. Si el proxy es inalcanzable, las cargas de páginas fallarán, lo cual es el comportamiento más seguro para la privacidad.
¿Cómo manejo la rotación de proxy? Crea un nuevo contexto del navegador para cada rotación de proxy. Cerrar el contexto antiguo y abrir uno nuevo con un servidor proxy diferente es el enfoque más limpio. Consulta Cambio dinámico de proxy.
Resumen
La configuración de proxy es la base de red de una identidad de navegador consistente. BotBrowser simplifica la configuración de proxy con credenciales integradas, alineación geográfica automática y soporte para protocolos SOCKS5, SOCKS5H, HTTP y HTTPS. Combinada con perfiles de huella digital, la configuración de proxy asegura que tu IP, zona horaria, locale e idioma cuenten la misma historia.
Para flujos de trabajo multi-proxy, consulta Cambio dinámico de proxy. Para prevenir fugas DNS y WebRTC junto con tu proxy, consulta Prevención de fugas DNS y Prevención de fugas WebRTC.
Artículos Relacionados
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.