A fecha de 7 de octubre de 2026, Shifter cuenta con el mayor pool de IPs estadounidenses activas, más que Oxylabs y Bright Data, a una fracción del coste.Shifter ahora tiene el mayor conjunto de IPs de EE. UU. activas

Ver comparativas

Formatos de proxy explicados: user:pass@host:port, host:port:user:pass y más

El mismo proxy se puede escribir de cinco formas. Qué formato esperan curl, Python, Playwright y las herramientas masivas, qué esquema usar y cómo convertir entre ellos.

Éxito del Cliente · Actualizado el 9 de noviembre de 2026 · 6 min de lectura
las mismas cinco partesschemeuserpasshostportuserpasshostporthostportuserpassuserpasshostporthostportuserpass
Un proxy, cinco formatos. Solo el azul es una URL real.
Conocimiento
En esta página
  1. Los cinco formatos habituales
  2. Qué herramientas esperan cuál
  3. El esquema describe el proxy, no el sitio web
  4. Los caracteres especiales rompen los formatos
  5. Conversión entre formatos
  6. Los proxies ISP usan las mismas formas
  7. Comprobaciones rápidas cuando un proxy no conecta
  8. Fuentes y referencias

Un proxy es un conjunto de cinco datos: un esquema, un nombre de usuario, una contraseña, un host y un puerto. Los proveedores, las herramientas y los foros organizan esas piezas en distintos órdenes, y un proxy que funciona en una herramienta falla en otra simplemente porque se pegó con la forma equivocada. Esta guía muestra los formatos habituales, qué herramientas esperan cuál, y cómo evitar los errores que vemos más a menudo con proxies residenciales.

Los cinco formatos habituales

Aquí está el mismo proxy de Shifter en los cinco formatos que el Proxy Generator de nuestro panel puede generar. El nombre de usuario lleva el targeting y la sesión, así que es más largo de lo que cabría esperar.

FormatoEjemplo
scheme://user:pass@host:porthttp://customer-USERNAME-sid-a1-ttl-60:PASSWORD@p.shifter.io:443
user:pass@host:portcustomer-USERNAME-sid-a1-ttl-60:PASSWORD@p.shifter.io:443
host:port:user:passp.shifter.io:443:customer-USERNAME-sid-a1-ttl-60:PASSWORD
user:pass:host:portcustomer-USERNAME-sid-a1-ttl-60:PASSWORD:p.shifter.io:443
host:port@user:passp.shifter.io:443@customer-USERNAME-sid-a1-ttl-60:PASSWORD

El primero es una URL real, definida por los estándares web, y es la opción más segura siempre que una herramienta la acepte. Los demás son convenciones. Existen porque muchas herramientas masivas importan listas de texto plano, un proxy por línea, y cada herramienta eligió su propio orden.

Qué herramientas esperan cuál

curl. Pasa la forma URL a -x. Si omites el esquema, curl asume http://. También puedes mantener las credenciales separadas con -U username:password, lo que evita problemas de codificación. Nuestra guía de configuración de curl y Postman tiene ejemplos completos.

Python requests y Scrapy. Ambos aceptan la forma URL. En requests, las claves del diccionario nombran el esquema del sitio web, y los valores nombran el proxy, así que ambos suelen apuntar a un proxy http://:

proxy = "http://customer-USERNAME:PASSWORD@p.shifter.io:443"
proxies = {"http": proxy, "https": proxy}

Playwright. Toma las partes como campos separados: server con el esquema, host y puerto, más username y password. Separarlos tú mismo evita cualquier problema de codificación.

Puppeteer y Chrome. El flag --proxy-server toma solo host y puerto. Las credenciales se pasan mediante page.authenticate().

Gestores de perfiles de navegador y herramientas masivas. Muchos importan listas en formato host:port:user:pass, y algunos preguntan qué orden usa tu lista. Comprueba la pantalla de importación antes de pegar unos cientos de líneas.

El esquema describe el proxy, no el sitio web

Este es el error más común que vemos. Un cliente que hace scraping de sitios web HTTPS escribe https:// delante del proxy, y todas las peticiones fallan con un error de TLS.

El esquema le indica a tu cliente cómo hablar con el proxy. Se accede a un sitio web HTTPS a través de un proxy http:// con el método CONNECT: el cliente pide al proxy que abra un túnel, y luego ejecuta TLS con el sitio web a través de él. La conexión con el sitio web sigue cifrada de extremo a extremo. Escribir https://p.shifter.io:443 le pide al cliente que inicie TLS con la propia pasarela, y nuestra pasarela no ofrece eso, así que el handshake falla. Usa http:// tanto para sitios HTTP como HTTPS, o socks5:// si tu herramienta prefiere SOCKS.

Con SOCKS hay una segunda elección. socks5:// resuelve el nombre del sitio web en tu máquina, mientras que socks5h:// envía el nombre al proxy para que lo resuelva. Si te importa dónde ocurren las consultas DNS, lee nuestra guía para prevenir fugas de DNS.

Los caracteres especiales rompen los formatos

Cada formato reserva algunos caracteres.

  • Forma URL: @, :, /, #, ? y % dentro de un nombre de usuario o contraseña deben codificarse con porcentaje. Una contraseña como p@ss:word se convierte en p%40ss%3Aword.
  • Formas separadas por dos puntos: un dos puntos dentro de la contraseña desplaza todos los campos que vienen después, así que la herramienta lee el host o el puerto equivocados.

Las partes de targeting y sesión de un nombre de usuario de Shifter usan solo letras, dígitos, guiones y guiones bajos, por ejemplo city-new_york, así que son seguras en todos los formatos. Si estableces una contraseña con símbolos, la forma URL con codificación, o una herramienta con campos separados, es la vía fiable.

Conversión entre formatos

Cuando una herramienta te da un formato y tu código necesita otro, convierte la lista en lugar de editar las líneas a mano. Esta función de Python convierte cualquiera de los cinco formatos en la forma URL y codifica las credenciales:

from urllib.parse import quote

def to_proxy_url(line: str, scheme: str = "http") -> str:
    line = line.strip()
    if "://" in line:
        return line
    if "@" in line:
        left, right = line.split("@", 1)
        if left.rsplit(":", 1)[-1].isdigit():
            hostport, creds = left, right  # host:port@user:pass
        else:
            creds, hostport = left, right  # user:pass@host:port
        user, password = creds.split(":", 1)
        host, port = hostport.rsplit(":", 1)
    else:
        parts = line.split(":")
        if len(parts) != 4:
            raise ValueError(f"unrecognised proxy line: {line}")
        if parts[1].isdigit():
            host, port, user, password = parts  # host:port:user:pass
        else:
            user, password, host, port = parts  # user:pass:host:port
    return f"{scheme}://{quote(user, safe='')}:{quote(password, safe='')}@{host}:{port}"

print(to_proxy_url("p.shifter.io:443:customer-USERNAME:PASSWORD"))
# http://customer-USERNAME:PASSWORD@p.shifter.io:443

Decide el orden encontrando el número de puerto, así que no puede distinguir los formatos cuando un nombre de usuario o contraseña es todo dígitos. En ese caso, pregunta a quien te dio la lista qué orden usa.

Los proxies ISP usan las mismas formas

Los proxies ISP siguen las mismas reglas con un host diferente. Todo proxy ISP se conecta a través de isp.shifter.io:443, así que una línea en formato host:port:user:pass se lee isp.shifter.io:443:USERNAME:PASSWORD. Cada proxy se distingue por su nombre de usuario, no por una IP y un puerto separados por proxy, lo que sorprende a quienes están acostumbrados a listas de ip:port:user:pass.

Comprobaciones rápidas cuando un proxy no conecta

  1. 407 Proxy Authentication Required: se alcanzó el proxy pero las credenciales no se aceptaron. Comprueba si falta o están invertidos el nombre de usuario y la contraseña, o si hay un símbolo sin codificar. Nuestra guía de solución de errores 407 cubre el resto.
  2. Errores de TLS o de handshake de inmediato: probablemente escribiste https:// delante del proxy. Cámbialo a http://.
  3. Connection refused o timeouts en todas las peticiones: el host o el puerto son incorrectos, a menudo porque una línea separada por dos puntos se leyó en el orden equivocado.
  4. Funciona en curl, falla en tu herramienta: la herramienta espera un formato distinto. Convierte la línea, o introduce los campos por separado.

En el panel, el Proxy Generator te permite elegir el protocolo y el formato antes de copiar, y descarga una lista completa en CSV en el mismo formato. Elegir la forma correcta desde el principio evita la mayoría de estos errores.

Fuentes y referencias

Preguntas frecuentes

¿Cuál es el formato estándar de un proxy?

La forma más aceptada es una URL: scheme://username:password@host:port, por ejemplo http://username:password@p.shifter.io:443. curl, Python requests, Scrapy y la mayoría de las bibliotecas HTTP la leen directamente. Las herramientas masivas y los gestores de perfiles de navegador suelen requerir host:port:username:password en su lugar, un proxy por línea.

¿Debo usar http:// o https:// para un proxy que utilizo en sitios web HTTPS?

Usa http:// en la mayoría de los casos. El esquema describe cómo se comunica tu cliente con el proxy, no con el sitio web. Los sitios HTTPS se tunelizan a través de un proxy http:// mediante el método CONNECT y permanecen cifrados de extremo a extremo. Escribir https:// indica al cliente que abra TLS hacia el propio proxy, lo cual falla en las puertas de enlace que no lo ofrecen.

¿Por qué falla mi proxy cuando la contraseña tiene caracteres especiales?

En la forma de URL, caracteres como @, :, /, # y % tienen un significado, por lo que deben codificarse en porcentaje, por ejemplo @ se convierte en %40. En formatos separados por dos puntos como host:port:user:pass, un carácter de dos puntos dentro de la contraseña divide la línea en el lugar equivocado. Codifica la contraseña, o elige un formato donde la herramienta tome el nombre de usuario y la contraseña como campos separados.

¿Cuál es la diferencia entre socks5:// y socks5h://?

Con socks5:// tu propia máquina resuelve el nombre de host del sitio web y envía la dirección IP al proxy. Con socks5h:// el nombre de host se envía al proxy, que lo resuelve por su cuenta. Usa socks5h:// en curl y Python cuando quieras que las búsquedas DNS se realicen en el proxy en lugar de en tu red.

¿Listo para empezar?

Prueba los proxies residenciales de Shifter, más de 205M IPs, más de 195 países, desde 0,75 $/GB.

Comenzar