Usar tu proxy
Conectar por SOCKS5
Cada puerto de proxy habla un solo protocolo —SOCKS5 o HTTP(S)—, elegido al crearlo. SOCKS5 (mediante socks5://) es la opción por defecto adecuada para la mayoría de herramientas; crea un puerto HTTP(S) (http://user:pass@host:PORT) para herramientas que solo hablan HTTP: uno de cada si necesitas ambos. Los puertos del mismo dispositivo comparten su IP de salida del operador y rotan conjuntamente. Cualquier cosa que hable cualquiera de los dos protocolos puede usarlos: navegadores, scrapers, navegadores antidetección, curl.
socks5:// es tu propia máquina la que resuelve el nombre antes de conectarse. Para que se resuelva en la red del operador del teléfono — y así un DNS geolocalizado responda para la salida y no para ti — usa socks5h:// con el mismo host, puerto y credenciales, o marca la opción «DNS por el proxy» de tu cliente.curl
curl -x socks5://USERNAME:PASSWORD@GATEWAY:PORT \
https://api.ipify.org?format=jsonHTTP(S) en lugar de SOCKS5
¿Prefieres un proxy HTTP? Crea un puerto de proxy con protocol: http: obtiene su propio puerto y credenciales. Transporta HTTPS mediante CONNECT, así que tu tráfico sigue cifrado de extremo a extremo. Si una herramienta necesita ambos protocolos, crea un puerto de cada uno: comparten la IP de salida del dispositivo y rotan conjuntamente.
curl -x http://USERNAME:PASSWORD@GATEWAY:PORT \
https://api.ipify.org?format=jsonPython (requests)
Instala el extra de SOCKS: pip install "requests[socks]".
import requests
proxy = "socks5://USERNAME:PASSWORD@GATEWAY:PORT"
r = requests.get(
"https://httpbin.org/ip",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
print(r.json())Node.js
Install node-fetch and socks-proxy-agent; Node's global fetch ignores the non-standard agent option.
import fetch from "node-fetch";
import { SocksProxyAgent } from "socks-proxy-agent";
const agent = new SocksProxyAgent(
"socks5://USERNAME:PASSWORD@GATEWAY:PORT"
);
const res = await fetch("https://api.ipify.org?format=json", { agent });
console.log(await res.json());UDP (QUIC/HTTP3, DNS)
Los puertos SOCKS5 también transportan UDP, usando el comando estándar UDP ASSOCIATE del RFC 1928: QUIC/HTTP3 y DNS salen por tu IP de operador igual que el TCP. Los puertos HTTP(S) no pueden transportar UDP; es una limitación del protocolo de proxy HTTP, no de tu dispositivo.
Tu cliente tiene que pedirlo. Las herramientas que solo emiten CONNECT —curl, la mayoría de bibliotecas HTTP— se quedan en TCP sea cual sea el esquema de URL que uses, así que socks5:// por sí solo no activa el UDP. Usa un cliente QUIC/HTTP3 que hable SOCKS5 UDP, o un tunelizador (Clash, sing-box, tun2socks) que enrute todo el UDP de una aplicación a través del proxy.
Los navegadores son la decepción habitual aquí: Chrome y Firefox suelen desactivar QUIC y se niegan a enviar medios WebRTC a través de un proxy SOCKS5 configurado, así que vuelven a TCP. Eso es comportamiento del navegador: enrútalos por un tunelizador si necesitas su UDP en la IP del operador.
Navegadores antidetección y otras herramientas
La mayoría de navegadores multicuenta y antidetección (y los frameworks de scraping) tienen un campo de proxy. Elige SOCKS5 y rellena el host, el puerto, el usuario y la contraseña de tu proxy, o pega la URL completa socks5://user:pass@host:port donde se acepte una única «URL de proxy».
Elige un perfil móvil —Android o iOS— en lugar de uno de escritorio. Tu tráfico sale de un teléfono Android real en una red de operador, así que las características TCP/IP que un sitio puede observar son las de un dispositivo móvil. Un perfil que dice ser Windows o macOS sobre una IP de operador móvil es una incoherencia que creas tú mismo; hacer coincidir el perfil con la salida mantiene toda la historia consistente sin que haya que falsear nada.
Un teléfono, muchas herramientas
Genera una credencial distinta para cada herramienta o cliente para poder vigilar y revocar cada una de forma independiente: consulta Gestionar credenciales. Todas comparten la única IP del operador del teléfono.