MI primer proyecto en Rust: un proxy SOCKS5 local que enruta el tráfico a través de Tor de manera sencilla y segura.
- Descripción
- Características
- Requisitos
- Instalación
- Uso
- Cómo funciona
- Estructura del proyecto
- Contribuciones
- Licencia
Este repositorio contiene un proxy SOCKS5 implementado en Rust que redirige todas tus conexiones TCP a través de la red de Tor, garantizando anonimato y privacidad.
Está diseñado pensando en la simplicidad y el rendimiento: aprovecha el poder de Tokio para I/O asíncrono y tokio-socks para conectar con Tor.
- 🚀 Asíncrono: gracias a Tokio, maneja múltiples conexiones concurrentes sin bloqueo.
- 🔒 Privacidad: todo el tráfico pasa por la red Tor.
- 🔧 Ligero: sin dependencias complejas, solo Tokio y Tokio-Socks.
- 🛠️ Configuración mínima: funciona con los valores por defecto de Tor.
- 📈 Logs sencillos: registro de conexiones y errores en consola.
- Rust 1.60+ (incluye
cargo) - Tor instalado y disponible en el puerto
9050(o ajusta la configuración) - Conexión a Internet
-
Clona el repositorio
git clone https://github.com/AsierCL/Rust-TORProxy cd Rust-TORProxy -
Compila el proyecto
cargo build --release
-
Asegúrate de que Tor esté arrancado
- Por defecto, Tor debe escuchar en
127.0.0.1:9050. - Si no está instalado, en Debian/Ubuntu:
sudo apt update && sudo apt install tor sudo systemctl start tor
- Por defecto, Tor debe escuchar en
-
Inicia el proxy
RUST_LOG=info ./target/release/TorRouter
-
Configura tu aplicación o navegador para usar SOCKS5 en
127.0.0.1:12345. -
¡Navega anónimamente! Todo tu tráfico TCP se enviará a través de Tor.
- Arranca Tor (se asume ya corriendo en
9050). - El programa crea un listener en
127.0.0.1:12345. - Cuando llega una conexión cliente:
- Realiza un handshake SOCKS5 sin autenticación.
- Lee la petición
CONNECT(IPv4 o dominio). - Conecta al destino a través de Tor usando
tokio-socks. - Envía respuesta de éxito al cliente.
- Copiado bidireccional de datos entre cliente y Tor.
Este patrón (split + copy) es el típico para proxies eficientes en Tokio.
rust-tor-proxy/
├── src/
│ └── main.rs # Código principal del proxy
├── Cargo.toml # Metadatos y dependencias
└── README.md # Este archivo
¡Bienvenidas! Si encuentras fallos o quieres proponer mejoras:
- Abre un issue.
- Crea un fork y un pull request.
Por favor, sigue las contribuciones estándar de GitHub.
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
¡Gracias por usar
Rust-TORRouter! 👏