Proxies alojados
Un proxy alojado envía el tráfico de una app a través de URnetwork cuando la app solo acepta un ajuste de proxy: curl, un script, un scraper o una app para el móvil como Shadowrocket. Esta guía muestra dónde encontrar la URL de un proxy en ur.io y cómo introducirla en los clientes más comunes.
Una nota sobre el alcance: un proxy alojado no tiene sesión sellada. Tu dispositivo cliente se ejecuta dentro del operador, que traduce el protocolo del proxy al de la red. Lo que se interpone entre el operador y tu tráfico es el diseño sin registros del proxy descrito en el modelo de amenazas, no un sellado. Los proveedores siguen sin saber quién eres. Cuando una app puede ejecutar URnetwork por sí misma, las apps y el SDK son el camino más privado.
Dos tipos de proxy
ur.io crea dos tipos de proxy que pueden usar los clientes de terceros:
| Proxy HTTPS | Proxy SOCKS5 | |
|---|---|---|
| Plan | Todos los planes | UR Pro |
| URL en ur.io | https:// | socks5h:// |
| Dónde va el token | En el nombre de host, sin usuario ni contraseña | En el usuario; la contraseña nunca se comprueba |
| El cliente debe admitir | Proxies HTTPS, que usan TLS hasta el proxy | SOCKS5 con usuario y contraseña |
| Transporta | Tráfico web: HTTP, y HTTPS mediante CONNECT | Conexiones TCP, y UDP mediante UDP associate |
El proxy SOCKS5 no admite BIND y descarta los datagramas UDP de más de 2 KiB. ur.io también crea perfiles de WireGuard en UR Pro. Importa el archivo .conf descargado en una app de WireGuard; el resto de esta guía trata HTTPS y SOCKS5.
Obtén la URL de un proxy
- Inicia sesión en ur.io y abre Proxies (Proxies) (ur.io/app/proxies).
- Elige Crear proxy (Create proxy).
- Elige el tipo de proxy: HTTPS, SOCKS5 o WireGuard. SOCKS5 y WireGuard llevan una insignia Pro. En el plan gratuito, el botón de crear ofrece Pro primero.
- Elige una ubicación. Busca un país, una región o una ciudad, o deja Mejor disponible (Best available), que usa cualquier proveedor de la red. Las ubicaciones muestran cuántos proveedores tienen.
- Elige Create HTTPS proxy o Create SOCKS5 proxy. El nuevo proxy aparece con su URL.
Cada proxy HTTPS y SOCKS5 de la lista tiene Copiar URL (Copy URL), que copia la URL completa con su token, y ×, que elimina el proxy.
Lee la URL
https:// <token>. <host>: <port>
socks5h:// <token>: x@<host>: <port><token>es el token del proxy, una larga serie de letras y dígitos. Es la única credencial del proxy, y no importa si las letras están en mayúsculas o minúsculas.- En la URL HTTPS, el token es la primera etiqueta del nombre de host. Introduce
<token>.como host del proxy, exactamente como lo muestra ur.io: el token del nombre es lo que te identifica.<host> - En la URL SOCKS5, el token está entre
socks5h://y:x@.<host>va después de la@, y<port>después del último:. - La
xes una contraseña de relleno. El proxy SOCKS5 nunca comprueba la contraseña, así que cualquier valor sirve. Algunos clientes solo envían el usuario cuando también hay una contraseña, entre ellosrequestsde Python, y la URL de ur.io lleva laxpara ellos. Si un cliente pide el usuario y la contraseña por separado, dale el token y cualquier contraseña. - Conserva la
hdesocks5h. Permite que el proxy resuelva los nombres de host, de modo que las consultas salen a través del proveedor en lugar de desde tu equipo. Consocks5a secas, curl resuelve primero los nombres en tu equipo.
Trata la URL como una contraseña. Cualquiera que la tenga puede usar el proxy, y el tráfico del proxy consume los datos de tu cuenta. Si una URL se filtra, elimina ese proxy en ur.io y el proxy dejará de aceptar su token. Después crea uno nuevo.
Comprueba que funciona con curl
# HTTPS proxy, on every plan
curl -x 'https:// <token>. <host>: <port>' https:// api. bringyour.com/ my-ip-info
# SOCKS5 proxy, on UR Pro
curl -x 'socks5h:// <token>: x@<host>: <port>' https:// api. bringyour.com/ my-ip-info/my-ip-info responde con la dirección de la que vino tu solicitud y dónde está esa dirección. A través del proxy, es la dirección de un proveedor en la ubicación que elegiste. Los proxies HTTPS necesitan curl 7.52 o posterior.
Navegadores
La forma más sencilla de pasar un navegador por un proxy es la extensión de URnetwork, que crea y gestiona su propio proxy alojado. Consulta Primeros pasos en tu navegador.
Para usar en su lugar un proxy que creaste en ur.io, usa su URL HTTPS. Chrome no puede enviar ningún usuario SOCKS5. Los ajustes de proxy del sistema operativo y los ajustes manuales de proxy de Firefox por lo general no pueden describir un proxy HTTPS.
Chrome, Edge y otros navegadores Chromium. Inicia el navegador con el proxy en su línea de comandos. El directorio de perfil aparte hace que la opción funcione incluso con la ventana habitual del navegador abierta:
# macOS
open -na "Google Chrome" --args --user-data-dir= "$HOME/ urnetwork-proxy-profile" --proxy-server= "https:// <token>. <host>: <port>"
# Linux
google-chrome --user-data-dir= "$HOME/ urnetwork-proxy-profile" --proxy-server= "https:// <token>. <host>: <port>"
# Windows, in Command Prompt (Edge: msedge instead of chrome)
start chrome --user-data-dir= "%USERPROFILE%\urnetwork-proxy-profile" --proxy-server= "https:// <token>. <host>: <port>"Firefox. Los ajustes manuales de Firefox no tienen campo de usuario para SOCKS ni tipo de proxy HTTPS, así que usa un archivo de configuración automática de proxy (PAC) de una sola línea. Guarda esto como urnetwork.pac:
function FindProxyForURL(url, host) {
return "HTTPS <token>.<host>:<port>";
}Después abre Ajustes → General → Configuración de red → Configuración… (Settings → General → Network Settings → Settings…), elige URL de configuración automática del proxy (Automatic proxy configuration URL), introduce la dirección del archivo, por ejemplo file:/// o file:///, y elige Aceptar (OK). Para dejarlo, elige Sin proxy (No proxy) en el mismo cuadro de diálogo.
Apps para el móvil: Shadowrocket y otras
Las apps de proxy para el móvil, como Shadowrocket en iOS, configuran un servidor SOCKS5 mediante unos pocos campos. Crea un proxy SOCKS5 en ur.io (UR Pro) y copia su URL. En la app, añade un servidor y rellénalo a partir de la URL:
| Campo | Valor |
|---|---|
| Tipo (Type) | SOCKS5 |
| Dirección, servidor o host (Address) | <host>: la parte entre @ y el último : |
| Puerto (Port) | <port>: los dígitos después del último : |
| Usuario o nombre de usuario (User) | <token>: la parte entre socks5h:// y :x@ |
| Contraseña (Password) | Cualquier valor, por ejemplo x |
Guarda el servidor, selecciónalo y activa la conexión. Para todo el teléfono, la app de URnetwork para iOS o Android no necesita proxy y es el camino más privado.
Python
requests acepta cualquiera de los dos proxies. SOCKS5 necesita el extra socks (pip install "requests[socks]"), y su URL necesita una contraseña de relleno:
import requests
proxy = "https:// <token>. <host>: <port>" # HTTPS proxy, every plan
# proxy = "socks5h:// <token>: x@<host>: <port>" # SOCKS5 proxy, UR Pro
r = requests.get(
"https:// api. bringyour.com/ my-ip-info",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
print(r.json()["info"]["ip"])httpx acepta las mismas URL; SOCKS5 necesita pip install "httpx[socks]". aiohttp acepta el proxy HTTPS:
import asyncio
import aiohttp
import httpx
with httpx. Client(proxy= "https:// <token>. <host>: <port>") as client:
print(client.get("https:// api. bringyour.com/ my-ip-info").json())
async def main():
async with aiohttp. ClientSession() as session:
async with session.get("https:// api. bringyour.com/ my-ip-info", proxy= "https:// <token>. <host>: <port>") as r:
print(await r.json())
asyncio.run(main())El gestor de descargas predeterminado de Scrapy no puede obtener páginas https:// a través de un proxy HTTPS: se detiene con «HTTPS proxies for HTTPS destinations are not supported». Obtén esas páginas con una de las bibliotecas anteriores.
Node.js
Para fetch, pasa el proxy HTTPS al ProxyAgent de undici:
import { fetch, ProxyAgent } from "undici";
const dispatcher = new ProxyAgent("https:// <token>. <host>: <port>");
const res = await fetch("https:// api. bringyour.com/ my-ip-info", { dispatcher });
console.log(await res.json());Para node:https y las bibliotecas que aceptan un agente, usa https-proxy-agent, o socks-proxy-agent para SOCKS5:
import https from "node:https";
import { HttpsProxyAgent } from "https-proxy-agent";
// import { SocksProxyAgent } from "socks-proxy-agent";
const agent = new HttpsProxyAgent("https:// <token>. <host>: <port>");
// const agent = new SocksProxyAgent("socks5h:// <token>: x@<host>: <port>");
https.get("https:// api. bringyour.com/ my-ip-info", { agent }, (res) => res.pipe(process. stdout));Otros programas: proxychains
En Linux, proxychains-ng envía las conexiones de un programa a través de un proxy SOCKS5 (UR Pro) incluso cuando el programa no tiene ajuste de proxy. Funciona precargando una biblioteca, así que no llega a los programas enlazados estáticamente, entre ellos la mayoría de los programas en Go. Su primer proxy debe ser una dirección IP, no un nombre de host, así que busca primero la dirección:
dig +short <host>Guarda un archivo de configuración, urnetwork.conf, con esa dirección:
strict_chain
proxy_dns
[ProxyList]
socks5 <ip> <port> <token> xDespués ejecuta los programas a través de él:
proxychains4 -f urnetwork.conf curl https:// api. bringyour.com/ my-ip-infoproxy_dns hace que proxychains resuelva los nombres a través del proxy. Si las conexiones dejan de funcionar más adelante, vuelve a buscar la dirección.
Límites
| Plan gratuito | UR Pro | |
|---|---|---|
| Proxies activos | 5 | 1.000 |
| Proxies nuevos por minuto | 5 | 20 |
Los proxies que crea la extensión del navegador también cuentan. Un límite solo impide crear proxies nuevos: los proxies que tienes siguen funcionando, y eliminar uno deja sitio para otro. Un proxy se mantiene hasta que lo eliminas; uno que pasa unos 30 días sin usarse se elimina por ti.
IP de salida única
Un proxy alojado suele repartir sus conexiones entre varios proveedores, así que dos de tus proxies pueden salir por la misma dirección. Con una IP de salida única, en UR Pro, cada proxy sale a través de un único proveedor cuya dirección no usa ninguno de tus otros proxies. Un proxy conserva su salida mientras ese proveedor siga en buen estado.
- Actívala: en la página Proxies, marca IP de salida única (Unique exit IP) al crear un proxy. Ajusta Número de proxies (Number of proxies) para crear hasta 20 a la vez. En la API, añade
"unique_a laexit": true proxy_config. - Límites: los proxies con salida única cuentan para los mismos límites que cualquier otro proxy, 1.000 activos y 20 nuevos por minuto.
- Lo que ves: cada proxy muestra dónde está su salida (ciudad, región y país) y desde cuándo. La dirección IP de la salida no se muestra. Para verla, consulta una comprobación de IP a través del proxy, por ejemplo con los comandos de curl de arriba.
- Si el proveedor falla: el proxy obtiene automáticamente una nueva salida única y muestra Reemplazando la salida… (Replacing exit…) mientras tanto. Los reemplazos están limitados por hora; por encima del límite, un proxy espera y lo vuelve a intentar más tarde. En la API,
"unique_hace que un proxy te espere: muestra Se perdió la salida (Exit lost) hasta que la cambies.exit_ replace": "manual" - Cambiar salida (Rotate exit): da al proxy una nueva salida única. La salida de un proxy se puede cambiar una vez por minuto y hasta 60 veces al día. Si no queda libre otra salida única en la ubicación, el proxy conserva la que tiene.
- No hay salida única disponible: cuando todas las salidas en buen estado de la ubicación ya las usan tus otros proxies, ur.io lo indica y no crea nada; el intento no cuenta para tus límites. Elige otra ubicación, o Mejor disponible.
Solución de problemas
ur.io se niega a crear un proxy. Muestra el motivo (los mensajes están en inglés). En el plan gratuito:
- «Your plan's limit of 5 active proxies is reached. Remove a proxy to create another, or upgrade to UR Pro for more.» (Se alcanzó el límite de 5 proxies activos de tu plan.) Elimina los proxies que ya no uses, o pásate a Pro.
- «Your plan allows 5 new proxies a minute. Try again in a minute, or upgrade to UR Pro for more.» (Tu plan permite 5 proxies nuevos por minuto.) Espera un minuto y vuelve a intentarlo.
En UR Pro, los mismos mensajes indican los límites de Pro y omiten la mejora de plan.
El proxy SOCKS5 rechaza el inicio de sesión. curl muestra uno de estos mensajes, y otros clientes los formulan a su manera:
User was rejected by the SOCKS5 server (1 1).El token es incorrecto o está incompleto, o el proxy se eliminó. Vuelve a copiar la URL de ur.io.No authentication method was acceptable.El cliente no envió ningún usuario. Pon el token como usuario, con una contraseña de relleno comox.
El proxy HTTPS rechaza la conexión. curl muestra CONNECT tunnel failed, response N, donde N es:
- 407: el proxy no encontró un token válido. Vuelve a copiar la URL de ur.io e introduce el
<token>.completo como host del proxy.<host> - 502: el proxy ya no existe, por ejemplo porque lo eliminaste, o no se pudo llegar al destino.
- 403: la dirección de quien llama está fuera del bloqueo de IP del proxy. Solo tienen uno los proxies creados mediante la API con un bloqueo de IP.
Un cliente que recibe una respuesta vacía, o una conexión que se cierra al instante, probablemente le habla HTTP sin cifrar al proxy. Usa la URL https:// en un cliente que admita proxies HTTPS.
Las páginas van lentas o agotan el tiempo de espera. Prueba Mejor disponible, o una ubicación con más proveedores. El tráfico del proxy consume los datos de tu cuenta, así que una cuenta sin datos restantes no puede abrir conexiones nuevas.
La IP de salida cambia. Igual que en las apps, un proxy alojado reparte sus conexiones entre varios proveedores de su ubicación. La dirección que ve un sitio puede cambiar de una conexión a la siguiente. Para mantener una IP de salida por proxy, créalo con una IP de salida única en UR Pro.
El proxy está en el lugar equivocado. Mejor disponible puede salir por cualquier país. Elige un país, una región o una ciudad al crear el proxy. ur.io no puede mover un proxy que ya tienes: crea uno nuevo en el lugar que quieras y después elimina el anterior.
Automatiza con la API
La página Proxies llama a la API del operador: POST /network/ con una proxy_config, donde initial_ elige la ubicación. La proxy_ de la respuesta lleva https_, socks_ y auth_token. La socks_ de la API no lleva usuario: añade auth_token como usuario, como hace ur.io. Una lock_ip_list de direcciones IP o subredes limita quién puede usar el proxy. Los límites anteriores también se aplican a la API.
Para una IP de salida única, añade unique_exit a la proxy_config:
{
"proxy_config": {
"unique_exit": true,
"initial_ device_ state": {
"location": { "connect_ location_ id": { "best_available": true } }
}
}
}Añade "unique_ para mantener un proxy en su salida cuando falle su proveedor, hasta que la cambies; el valor predeterminado es "auto".
La proxy_ de la respuesta da el exit_id, country_code, region, city, exit_since y state (assigned, replacing o no_supply) de la salida, el state_reason cuando lo hay, y el replace_mode. GET /network/ informa de lo mismo como el exit de cada proxy, junto a su proxy_client. Un rechazo con no_ significa que a la ubicación no le queda ninguna salida que tus proxies no usen ya. POST /network/ con el client_id del proxy lo mueve a una nueva salida única y responde con el nuevo exit; lo rechaza con rate_limited por encima del límite de cambios, o con no_ cuando no queda libre ninguna otra salida. Acepta el inicio de sesión de tu red o una clave de API.