Tor es reconocido por su alto nivel de anonimato, gracias al enrutamiento de tráfico a través de múltiples nodos voluntarios. Aunque esto aumenta la privacidad, también reduce la velocidad en comparación con opciones como Cloudflare Tunnels o Nginx Proxy Manager. Aun así, cuando buscas acceder a servicios internos sin abrir puertos ni adquirir un dominio, Tor se convierte en una solución gratuita y factible, sobre todo si la privacidad es prioritaria.
En este tutorial, aprenderás a exponer un servicio interno en la red Tor utilizando como ejemplo un servidor web básico basado en la imagen Docker itrafael/wstest, diseñada específicamente para las pruebas en este post.
Casos de Uso Populares
- Acceso a aplicaciones de monitoreo
Usar Uptime Kuma en combinación con Tor te permite monitorear tus servicios desde cualquier parte del mundo, sin exponer puertos y con máxima privacidad. - Paneles internos de prueba
Verifica la configuración de Tor utilizando aplicaciones mínimas como itrafael/wstest antes de desplegar proyectos más complejos. - Alternativa a Túneles de Cloudflare o Nginx Proxy Manager
Aunque alternativas como Cloudflare Tunnels y Nginx Proxy Manager ofrecen velocidad y simplicidad con certificados SSL automáticos, Tor aporta privacidad extrema sin necesidad de depender de terceros ni adquirir un dominio. - Entornos de laboratorio y aprendizaje
Si gestionas contenedores en Docker o usas Proxmox VE para máquinas virtuales, Tor puede ser una solución simple para probar conectividad externa en laboratorios sin exponer tu red. - Privacidad para aplicaciones sensibles
Tor es perfecto para aplicaciones que requieren un nivel de anonimato superior, como servidores de comunicación para activistas, periodistas o desarrolladores de software en contextos críticos.
Requisitos Previos
- Un servidor o máquina local con Linux.
- Permisos de
sudo
para instalar paquetes y editar archivos de configuración. - Docker instalado, si deseas correr contenedores (consulta Cómo Instalar Docker y Docker Compose en Linux: Guía Paso a Paso).
- Un servicio web interno (usaremos la imagen
itrafael/wstest
como ejemplo).
Paso 1: Instalar y Configurar Tor
1. Instalar Tor
Ejecuta los siguientes comandos para instalar Tor:
sudo apt update
sudo apt install tor -y
2. Editar la Configuración de Tor
Abre el archivo de configuración de Tor:
sudo nano /etc/tor/torrc
Añade las siguientes líneas al final del archivo:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
HiddenServiceDir
: Directorio donde Tor almacenará las claves y la dirección.onion
.HiddenServicePort
: Mapea el puerto 80 de tu servidor local al puerto 80 del servicio oculto en Tor.
Guarda los cambios (Ctrl+O, Enter) y cierra el archivo (Ctrl+X).
3. Reiniciar el Servicio de Tor
Reinicia Tor para aplicar los cambios:
sudo systemctl restart tor
Tor creará automáticamente el directorio especificado en HiddenServiceDir
y los archivos necesarios para tu servicio oculto.
Paso 2: Desplegar el Contenedor “itrafael/wstest”
1. Ejecutar el Contenedor
Usaremos la imagen Docker itrafael/wstest
como servicio de ejemplo:
docker run -d --name wstest -p 80:80 itrafael/wstest
-d
: Ejecuta el contenedor en segundo plano.--name wstest
: Asigna un nombre al contenedor.-p 80:80
: Mapea el puerto 80 del contenedor al puerto 80 de tu máquina anfitriona.
2. Verificar el Servicio Localmente
Si estás en la misma máquina que aloja el contenedor, abre un navegador y accede a http://localhost
Si el contenedor se está ejecutando en una VM o contenedor LXC en Proxmox (o cualquier otro servidor remoto), primero averigua la dirección IP con:
ip a
En mi caso es:

Luego, en tu navegador (desde otra máquina en la misma red), visita http://<dirección-IP>
. Deberías ver la página de prueba de itrafael/wstest para confirmar que el servidor web está funcionando correctamente.

Paso 3: Obtener tu Dirección .onion
Obtener la Dirección del Servicio Oculto
sudo cat /var/lib/tor/hidden_service/hostname
Este comando te mostrará tu dirección .onion
. En mi caso exakxafo34v2qcnt7ab2pntkfxxj6afeni237bkpgrvuyqxca7psveyd.onion

Proteger y Respaldar el Directorio del Hidden Service
Asegúrate de proteger las claves privadas almacenadas en /var/lib/tor/hidden_service/
. Si pierdes estos archivos o se eliminan, tu dirección .onion
cambiará. Para mantener la misma dirección en caso de restaurar el servicio o migrar a otra máquina, respalda este directorio de forma segura.
sudo chmod -R 700 /var/lib/tor/hidden_service/
sudo chown -R debian-tor:debian-tor /var/lib/tor/hidden_service/
Estas líneas restringen el acceso a las claves y garantizan que solo el usuario debian-tor
(encargado de Tor) pueda modificarlas.
Paso 4: Acceder al Servicio desde Tor
- Instalar Tor Browser
Descarga el navegador Tor en tu dispositivo local. - Abrir la Dirección .onion
Inicia el navegador Tor y accede a la URL.onion
generada en el paso anterior.

Opciones Adicionales: HTTPS Interno
Aunque Tor cifra automáticamente el tráfico entre el cliente y el último nodo Tor, habilitar HTTPS en tu servicio local añade cifrado de extremo a extremo, asegurando que, incluso dentro de tu red local, la comunicación esté protegida. Esto resulta clave en entornos productivos donde hay varios dispositivos o usuarios que podrían interceptar el tráfico sin cifrar en la LAN
Próximos Pasos
- Exponer Servicios Complejos
Tras verificar el funcionamiento conitrafael/wstest
, expón aplicaciones como Uptime Kuma, Nextcloud o paneles de administración como Proxmox VE. - Explorar Alternativas
Para servicios que requieran mayor velocidad, considera opciones como Cloudflare Tunnels o Nginx Proxy Manager. - Fortalecer la Seguridad
Habilita contraseñas o autenticación en tus servicios para evitar accesos no deseados. - Virtualización y Entornos de Prueba
Si usas Proxmox VE, puedes exponer servicios en contenedores LXC o máquinas virtuales a través de Tor.
Consejos Adicionales
Registrar Logs de Tor
Para depurar errores o verificar que tu servicio se inicie correctamente, revisa los logs de Tor:
journalctl -u tor
Si deseas llevar los registros a un archivo específico, abre el archivo de configuración /etc/tor/torrc
y añade la siguiente línea
Log notice file /var/log/tor/notices.log
Con esto, activarás un registro de nivel “notice” en el fichero /var/log/tor/notices.log
. Asegúrate de reiniciar Tor para que los cambios surtan efecto:
sudo systemctl restart tor
De esta manera, podrás consultar eventos detallados y posibles advertencias sobre el servicio oculto.
Uso de Varios Puertos
Si quieres exponer más de un puerto (por ejemplo, 80 y 443) en tu servicio oculto, basta con añadir líneas adicionales en tu torrc
:
HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 443 127.0.0.1:443
De esta forma, puedes manejar HTTP y HTTPS simultáneamente.
Permisos en Contenedores
Si tu servidor aloja múltiples aplicaciones, considera hacer el binding de tus contenedores a 127.0.0.1
(en lugar de 0.0.0.0
) para reforzar la seguridad. Así, el servicio solo será accesible localmente, y Tor se encargará de exponerlo a la red externa sin necesidad de un bind público.
Conclusión
Exponer servicios internos en la red Tor es una forma práctica de garantizar privacidad sin necesidad de adquirir un dominio ni abrir puertos en tu router. Aunque la velocidad de Tor es limitada, es ideal para proyectos pequeños, entornos de prueba y servicios sensibles donde el anonimato sea prioritario.
Para la mayoría de los proyectos, la velocidad y facilidad de configuración de Cloudflare Tunnels y Nginx Proxy Manager pueden resultar más atractivas. Sin embargo, si la privacidad es prioritaria o deseas un entorno experimental sin exponer puertos ni comprar un dominio, Tor es una herramienta invaluable.
¿Tienes dudas o sugerencias? ¡Déjalas en los comentarios! 😊