Tor es una red de anonimato formada por miles de servidores voluntarios (relays) que encadenan el tráfico de sus usuarios en tres saltos. En este tutorial instalarás Tor desde el repositorio oficial del Proyecto Tor en Ubuntu 24.04 y lo configurarás como relay intermedio (middle relay): reenvía tráfico cifrado dentro de la red, pero nunca es el punto por el que ese tráfico sale a Internet. Al terminar tendrás el relay publicado en el directorio de Tor, con límites de ancho de banda y un monitor en tiempo real.
Requisitos previos
Para seguir esta guía necesitas:
- Un servidor con Ubuntu 24.04 LTS y una IP pública fija, por ejemplo un VPS de CubePath.
- Un usuario no root con privilegios
sudo. - Al menos 1 GB de RAM. Tor usa un solo núcleo para la mayor parte del cifrado, así que la velocidad de ese núcleo importa más que el número de CPUs.
- Ancho de banda sostenido: el Proyecto Tor recomienda al menos 16 Mbit/s en cada sentido para un relay intermedio. Un relay transfiere varios TB al mes, así que revisa la transferencia incluida en tu plan.
- UFW activo con SSH permitido.
Tipos de relay
| Tipo | Qué hace | Aparece en el directorio público | Riesgo de quejas de abuso |
|---|---|---|---|
| Intermedio (guard con el tiempo) | Reenvía tráfico cifrado entre relays | Sí | Muy bajo |
| Puente (bridge) | Punto de entrada no listado para usuarios censurados | No | Muy bajo |
| Salida (exit) | Entrega el tráfico a su destino final en Internet | Sí | Alto |
Esta guía monta un relay intermedio. Los relays de salida reciben quejas de abuso y avisos legales dirigidos a su IP; no ejecutes uno sin revisar antes la política de uso aceptable de tu proveedor y sin un procedimiento para atender esas quejas.
Paso 1: Añadir el repositorio oficial de Tor
Ubuntu incluye un paquete tor, pero suele ir por detrás de la versión estable. El Proyecto Tor mantiene su propio repositorio con actualizaciones de seguridad inmediatas, que es lo recomendado para relays.
Instala las herramientas necesarias:
sudo apt update
sudo apt install apt-transport-https gpg wget
Descarga la clave de firma del repositorio. El Proyecto Tor la documenta en /usr/share/keyrings/deb.torproject.org-keyring.gpg, la misma ruta que actualiza después su paquete de claves cuando rota la clave:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg > /dev/null
Crea el archivo del repositorio para Ubuntu 24.04 (noble):
echo "deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org noble main" | sudo tee /etc/apt/sources.list.d/tor.list
Actualiza el índice y comprueba que el paquete tor viene ahora de deb.torproject.org:
sudo apt update
apt-cache policy tor
tor:
Installed: (none)
Candidate: 0.4.8.x-1~noble+1
Version table:
0.4.8.x-1~noble+1 500
500 https://deb.torproject.org/torproject.org noble/main amd64 Packages
El número de versión exacto será distinto; lo importante es el origen.
Paso 2: Instalar Tor
Instala Tor junto con el paquete que mantiene actualizada la clave del repositorio:
sudo apt install tor deb.torproject.org-keyring
Comprueba la versión instalada:
tor --version
Tor version 0.4.8.x.
En Ubuntu y Debian, Tor se ejecuta como el servicio tor@default, bajo el usuario debian-tor. El servicio tor es solo un envoltorio que arranca las instancias; el que debes consultar y reiniciar es tor@default.
Paso 3: Configurar el relay intermedio
Toda la configuración de Tor está en /etc/tor/torrc. Haz una copia del archivo original y ábrelo:
sudo cp /etc/tor/torrc /etc/tor/torrc.orig
sudo nano /etc/tor/torrc
Añade al final este bloque. Sustituye MiRelayCubePath por un apodo propio (solo letras y números, hasta 19 caracteres) y pon un correo de contacto real:
# Identidad del relay
Nickname MiRelayCubePath
ContactInfo tu_correo@your_domain
# Puerto por el que otros relays y clientes se conectan
ORPort 9001
# Relay intermedio: no hace de salida ni de proxy local
ExitRelay 0
SocksPort 0
# Límite de ancho de banda (media y ráfaga)
RelayBandwidthRate 10 MBytes
RelayBandwidthBurst 20 MBytes
# Límite mensual de transferencia (opcional)
AccountingStart month 1 00:00
AccountingMax 2 TBytes
# Puerto de control local para nyx
ControlPort 9051
CookieAuthentication 1
Qué hace cada bloque:
NicknameyContactInfoson públicos. El contacto permite al Proyecto Tor avisarte si tu relay falla o está desactualizado.ORPort 9001es el único puerto que tiene que ser accesible desde Internet. Desde Tor 0.4.5, si el servidor tiene IPv6, Tor también escucha y publica ese puerto por IPv6 automáticamente.ExitRelay 0garantiza que el relay nunca sea de salida ySocksPort 0desactiva el proxy SOCKS local, que un relay no necesita.RelayBandwidthRateyRelayBandwidthBurstusan bytes, no bits:10 MBytesson unos 80 Mbit/s. Ajusta los valores a tu conexión.AccountingMaxcuenta el tráfico en cada sentido por separado. Cuando se alcanza, Tor hiberna hasta el siguiente periodo. Si tu plan no tiene límite de transferencia, borra las dos líneas deAccounting.ControlPort 9051solo escucha en127.0.0.1y se autentica con una cookie; lo usarás en el paso 6.
Antes de reiniciar, valida la sintaxis del archivo como el usuario del servicio:
sudo -u debian-tor tor --verify-config
Configuration was valid
Paso 4: Abrir el ORPort en el firewall
Permite conexiones entrantes TCP en el puerto 9001:
sudo ufw allow 9001/tcp comment 'Tor ORPort'
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
9001/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
9001/tcp (v6) ALLOW Anywhere (v6)
No abras el puerto 9051: el ControlPort debe quedarse solo en local.
Paso 5: Arrancar el relay y comprobar que es alcanzable
Reinicia la instancia y asegúrate de que arranque con el sistema:
sudo systemctl enable tor
sudo systemctl restart tor@default
sudo systemctl status tor@default
● [email protected] - Anonymizing overlay network for TCP
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled-runtime; preset: enabled)
Active: active (running) since Thu 2026-09-25 10:20:14 UTC; 8s ago
Tor comprueba por sí mismo que su ORPort es accesible desde fuera y después publica su descriptor en las autoridades de directorio. Sigue el log:
sudo journalctl -u tor@default -f
Tras uno o dos minutos deberías ver estas líneas:
Bootstrapped 100% (done): Done
Now checking whether IPv4 ORPort 203.0.113.10:9001 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
Self-testing indicates your ORPort 203.0.113.10:9001 is reachable from the outside. Excellent. Publishing server descriptor.
Performing bandwidth self-test...done.
Pulsa Ctrl+C para salir. Si en lugar del mensaje Excellent aparece que el ORPort no es alcanzable, revisa la sección de solución de problemas.
La huella (fingerprint) identifica tu relay de forma única en la red. Consúltala así:
sudo cat /var/lib/tor/fingerprint
MiRelayCubePath 1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B
Busca ese fingerprint o el apodo en Tor Metrics Relay Search. El relay aparece normalmente en un plazo de una a tres horas, cuando las autoridades publican el siguiente consenso.
Paso 6: Monitorizar el relay con nyx
nyx es el monitor de terminal oficial para relays de Tor: muestra el ancho de banda en tiempo real, las conexiones y el log. Instálalo:
sudo apt install nyx
Para leer la cookie de autenticación del ControlPort, tu usuario debe pertenecer al grupo debian-tor:
sudo usermod -aG debian-tor $USER
Cierra la sesión SSH y vuelve a entrar para que el cambio de grupo se aplique. Después ejecuta:
nyx
Verás la gráfica de tráfico de subida y bajada y, en la parte superior, el apodo, el fingerprint y los flags del relay. Pulsa q para salir.
Qué esperar en las primeras semanas
Un relay nuevo pasa por varias fases antes de usarse a pleno rendimiento:
- Días 1 a 3: las autoridades miden el ancho de banda real. El tráfico es bajo.
- Días 3 a 8: el relay recibe cada vez más tráfico a medida que se confirma su capacidad.
- Días 8 a 68: con buen tiempo de actividad recibe el flag
Guardy los clientes empiezan a usarlo como primer salto. Al principio el tráfico baja un poco, porque los clientes tardan en rotar sus guards.
Un tráfico bajo durante la primera semana es normal y no indica un problema de configuración.
Paso 7: Mantener Tor actualizado
Las versiones antiguas de Tor acaban excluidas de la red. Activa las actualizaciones automáticas también para el repositorio de Tor. Abre la configuración de unattended-upgrades:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Dentro del bloque Unattended-Upgrade::Origins-Pattern, añade la línea del origen de Tor:
Unattended-Upgrade::Origins-Pattern {
"origin=TorProject";
};
Si el bloque ya existe con otras líneas, añade solo "origin=TorProject"; dentro. Comprueba la configuración con una simulación:
sudo unattended-upgrade --dry-run --debug 2>&1 | grep -i torproject
Deberías ver origin=TorProject entre los orígenes permitidos.
Opcional: configurarlo como puente (bridge)
Un puente es un relay que no aparece en el directorio público. Lo usan personas en países donde las IPs de los relays conocidos están bloqueadas. Si prefieres ejecutar un puente en lugar de un relay intermedio, instala el transporte obfs4, que disfraza el tráfico de Tor:
sudo apt install obfs4proxy
Sustituye el bloque que añadiste en /etc/tor/torrc por este:
BridgeRelay 1
ORPort 9001
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:8443
ExtORPort auto
ContactInfo tu_correo@your_domain
Nickname MiPuenteCubePath
SocksPort 0
Abre también el puerto de obfs4 y reinicia:
sudo ufw allow 8443/tcp comment 'Tor obfs4'
sudo systemctl restart tor@default
La línea de puente que los usuarios introducen en Tor Browser se guarda en /var/lib/tor/pt_state/obfs4_bridgeline.txt. No publiques esa línea tú mismo: el Proyecto Tor distribuye los puentes a quien los necesita.
Solución de problemas
Your server has not managed to confirm reachability for its ORPort(s): el puerto 9001 no es accesible desde fuera. Comprueba que Tor escucha en él con sudo ss -tlnp | grep 9001 y que la regla de UFW existe. Desde otra máquina, prueba con nc -vz your_server_ip 9001.
El relay no aparece en Tor Metrics después de varias horas: busca por fingerprint en lugar de por apodo y revisa el log con sudo journalctl -u tor@default --since "3 hours ago". Si ves Publishing server descriptor, solo es cuestión de esperar al siguiente consenso.
El tráfico cae a cero a mitad de mes: se ha alcanzado AccountingMax y Tor está hibernando. El log muestra Hibernation period ended cuando vuelve a arrancar. Aumenta el límite o reduce RelayBandwidthRate para repartir el tráfico durante todo el mes.
Permission denied al abrir nyx: tu sesión aún no tiene el grupo debian-tor. Comprueba con id que aparece el grupo; si no, cierra la sesión y vuelve a entrar.
Conclusión
Tienes un relay intermedio de Tor instalado desde el repositorio oficial, con límites de ancho de banda, el ORPort accesible, el descriptor publicado y un monitor en tiempo real. Tu servidor ya aporta capacidad a una red que usan millones de personas para proteger su privacidad.
Como siguientes pasos, puedes:
- Suscribirte a la lista de correo
tor-relaysdel Proyecto Tor para recibir avisos de versiones y problemas de la red. - Si tu servidor tiene varios núcleos y ancho de banda de sobra, ejecutar una segunda instancia de Tor y declarar ambas en
MyFamilypara aprovecharlo. - Revisar periódicamente la página de tu relay en Tor Metrics para vigilar su tiempo de actividad y sus flags.
