Torrents por I2P — Tutorial completo (qBittorrent-nox + i2pd)

Guía para descargar/compartir torrents dentro de la red I2P, adaptada a tu máquina: Arch Linux, qBittorrent-nox v5.2.3 (ya corriendo en 127.0.0.1:8080), i2pd no instalado aún.


1. ¿Por qué I2P y no Tor para torrents?

Tor I2P
Misión Anonimato general (web, chat, DNS) P2P y servicios anónimos
Torrents Desaconsejado: lento, y el flujo de datos P2P rompe el anonimato (circuitos largos, DHT contaminado, riesgo de expulsión de relay) Diseñado para esto: túnel a túnel, sin salida a clearnet salvo outproxy
El tráfico sale a internet Sí (relays de salida) No (salvo outproxy explícito)
Tamaño de red p2p Poca gente torrentea Comunidad torrent dedicada (trackers .i2p, DHT propio)

Regla de oro I2P: el cliente se conecta por el puente SAM del router i2pd. Todo el tráfico torrent queda dentro de I2P, cifrado de extremo a extremo, sin exponer tu IP.


2. Arquitectura

qBittorrent-nox ──(SAM v3, 127.0.0.1:7656)──> i2pd ──(túnel I2P)──> peers/trackers .i2p
        │
        └──(HTTP proxy 127.0.0.1:4444 para trackers opcional)
  • i2pd: router I2P en C++ (liviano, sin Java). Alternativa: router Java (i2p AUR), más pesado.
  • qBittorrent: tu cliente ya instalado; usa libtorrent 2.x → soporta I2P (“experimental”).

3. Instalar y configurar i2pd

sudo pacman -S i2pd

Edita /etc/i2pd/i2pd.conf:

## Ancho de banda del nodo
## L = 32 KB/s, O = 256 KB/s, P = 2048 KB/s, X = ilimitado
## También puedes poner un entero en KB/s, p.ej. 1000
bandwidth = O

## ============ Verifica que SAM está activo (lo usa qBittorrent) ============
[sam]
enabled = true            # puente para clientes torrent
address = 127.0.0.1
port = 7656
portudp = 7655

## Lista de addressbook (resolver nombres .i2p / trackers)
[addressbook]
defaulturl = http://shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa.b32.i2p/hosts.txt
subscriptions = http://reg.i2p/hosts.txt,http://identiguy.i2p/hosts.txt,http://stats.i2p/cgi-bin/newhosts.txt

## Proxies locales para el navegador (opcional pero útil)
[httpproxy]      # 127.0.0.1:4444 (verás páginas .i2p)
[socksproxy]     # 127.0.0.1:4447

Arranca el servicio:

sudo systemctl enable --now i2pd

Costes:

  • La primera arrancada tarda 10-30 min en llenar la base de datos de routers (network database) hasta que está “roja/verde” en la consola web.
  • Consola web de i2pd: http://127.0.0.1:7070 → ahí verás “Network: OK”, puertos SAM/SOCKS/HTTP activos.

4. Configurar qBittorrent-nox 5.2.3

Entra a tu WebUI (ya lo tienes: http://127.0.0.1:8080, usuario esotericwarfare).

4A. Opciones → Conexión (Connection)

En I2P (experimental):

  • Activa Enable I2P.
  • I2P host: 127.0.0.1
  • I2P port: 7656 (puerto SAM de i2pd)
  • Mixed mode: desmarcado → modo SOLO I2P, prohibido clearnet.

En Proxy server (opcional, útil para trackers):

  • Tipo: HTTP
  • 127.0.0.1 puerto 4444 (proxy HTTP del i2pd)
  • Marca Perform hostname lookup via proxy y Use proxy for bittorrent purposes.
  • SI NO pones proxy: deja “Proxy server” en None, pero desactiva DHT/PeX/LSD (sección 4B) para no filtrar nada.

4B. Opciones → BitTorrent

  • Anonymous mode: activado.
  • Encryption mode: Allow encryption (NO “Require” — la mayoría de peers I2P son I2PSnark sin cifrado; exigirlo te deja sin peers).
  • Privacidad: desactiva DHT, Peer Exchange (PeX) y Local Peer Discovery (no están implementados para I2P en libtorrent y pueden filtrar/empeorar).
  • Activa Automatically append these trackers to new downloads y pega los trackers .i2p (sección 6).

4C. Opciones → Avanzado

  • Network interface127.0.0.1 y Optional IP address to bind to127.0.0.1 (kill-switch a nivel de bind: sin salida clearnet).
  • Túneles I2P (cuanto más largo = más anonimato, más lento):
    • i2p_inbound_quantity / i2p_outbound_quantity: 3-5
    • i2p_inbound_length / i2p_outbound_length: 3 (mínimo recomendado; no bajes de 3)

Si la pestaña I2P no aparece (por ser nox), edita a mano ~/.config/qBittorrent/qBittorrent.conf añadiendo:

[BitTorrent]
# I2P SOLO (sin mixed mode) via SAM
Session\I2P\Enabled=true
Session\I2P\Address=127.0.0.1
Session\I2P\MixedMode=false
Session\AnonymousMode=true
# Reducir filtrado de trackers .i2p que no acaban en announce.php
Session\AnnounceToAllTiers=true

Reinicia: systemctl restart qbittorrent-nox (o como lo lances).


5. Navegador para páginas .i2p

Necesitas un navegador que use el proxy de i2pd — con un perfil separado del de tu navegador normal (regla de oro: nunca mezcles I2P y clearnet en el mismo perfil).

Firefox: about:preferences#general → Network Settings → Manual proxy:

  • HTTP proxy: 127.0.0.1 puerto 4444
  • Marca “Also use this proxy for HTTPS”.

Para pruebas: Google alojado dentro de I2P → http://i2p-projekt.i2p/ (o consola 127.0.0.1:7070).


6. Dónde encontrar torrents (dentro de I2P)

Sitio URL (.i2p) Qué es
Postman http://tracker2.postman.i2p/ El tracker principal: buscador, sube/descarga
DG2 http://tracker2.dg2.i2p/ Tracker alternativo
reg http://reg.i2p/ Listado de torrents y enlaces
PSA http://psa.i2p/ Buscador
Wiki de trackers http://wiki.i2p-projekt.i2p/wiki/index.php/Public_trackers Lista completa de announce URLs

Announce URLs para añadir a tus torrents (sustituyen al tracker central de clearnet):

http://tracker2.postman.i2p/announce.php
http://tracker2.dg2.i2p/announce.php

Un .torrent de I2P vale solo dentro de I2P (infohash y peering locales). No funciona contra trackers clearnet, y viceversa.


7. Prueba con un magnet de I2P

  1. Sufre la espera inicial (10-30 min hasta que i2pd esté conectado).
  2. Añade un magnet de la sección 6 vía WebUI.
  3. En qBittorrent-nox verás peers con dirección .i2p; la descarga del metadata puede tardar varios minutos (I2P es lento por diseño).

Logs de confirmación:

sudo journalctl -u i2pd -f

8. Seguridad (imprescindible)

  1. No cruces torrents: un mismo qBittorrent NO debe bajar clearnet Y I2P a la vez (riesgo de correlación). Usa un perfil aparte para I2P o es lo que estás haciendo aquí (modo solo-I2P).
  2. No uses proxy clearnet como salida: dejar el “outproxy” del navegador tal cual; para torrents, jamás outproxy.
  3. Cifrado: “Allow encryption”, nunca “Require”.
  4. Firewall: opcional pero limpio — solo permite salida de i2pd (TCP/UDP aleatorio) y entrada SOLO por CONSENTIDO de I2P (i2pd gestiona sus sockets; no abras puertos manuales salvo UPnP).
  5. Velocidades: olvida el clearnet. Con bandwidth = O irás a 256 KB/s por túnel; sube a P/1000+ si tu línea lo permite.
  6. Los flags/túneles son tu anonimato: no bajes de 3 saltos.

9. Problemas comunes

Síntoma Causa/Solución
i2pd tarda en conectarse Normal: reseed inicial. Mira 127.0.0.1:7070 hasta “Network OK”
qBittorrent no anuncia trackers Añade los announce URLs (sección 6); si el tracker no acaba en announce.php, no filtres con AnnounceToAllTiers=false
Sin peers I2P es lento: espera minutos; verifica SAM activo en i2pd webconsole (/sam)
Error “invalid info … bdecode” El .torrent trae infohash/filelist raro; prueba otro torrent o el magnet directamente
El peer list queda vacío Normal: libtorrent aún no muestra peers I2P; revisa el contador de seeds

10. Alternativas de cliente

  • BiglyBT (+ plugin I2P): más maduro para I2P que qBittorrent.
  • I2PSnark (si pasaras al router Java): integrado en su consola web, cero configuración.
  • Deluge con plugin/kill-switch específico.

qBittorrent 5.2.x es funcional pero experimental para I2P — si encuentras flaquezas, BiglyBT es la apuesta segura.


Fuentes