ferrite-server
Servidor DNS autoalojado en Rust que combina filtrado de anuncios con túneles per-dispositivo vía WireGuard, SOCKS5 o Tor. Bloquea trackers y permite egress controlado sin root.
Ficha actualizada 23 sept 2026, 23:50 · upstream 23 sept 2026, 23:31 · release v0.1.8
Qué es ferrite-server
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Ferrite es un servidor DNS self-hosted escrito en Rust que fusiona filtrado de anuncios/trackers con capacidad de enrutar tráfico por túneles específicos por dispositivo. A diferencia de Pi-hole, no solo limpia el DNS sino que decide cómo sale el tráfico de cada dispositivo a través de WireGuard, SOCKS5 o Tor.
El sistema opera sin root y sin dispositivos TUN, ejecutando WireGuard en userspace mediante boringtun y smoltcp dentro del mismo proceso. Soporta múltiples upstreams (DoT, DoH, DoQ, plain) con failover y round-robin, y elimina el EDNS Client Subnet para evitar fugas de información al upstream.
La interfaz web permite gestión completa sin reinicios: reglas de bloqueo/permitir por dispositivo, perfiles de túnel, listas de bloqueo desde URLs públicas (StevenBlack, OISD, AdGuard) y configuración de upstreams. El log es SQLite con retención configurable y interruptor para desactivar registro completo.
- Bloquear anuncios y trackers en toda la red mientras se mantiene acceso a servicios esenciales
- Enrutar tráfico de dispositivos específicos (niños, IoT) a través de Tor o SOCKS5 sin afectar el resto de la red
- Evasión de DPI mediante fragmentación de TLS ClientHello para dominios bloqueados que requieren acceso
- Servidor DNS privado sin telemetría ni phone-home, ideal para entornos con restricciones de privacidad
- Reemplazo de Pi-hole/AdGuard Home cuando se necesita control granular por dispositivo sobre egress
- Single binary en Rust (~60 MB RSS) con decisiones DNS sub-2 ms y capacidad de decenas de miles de QPS
- Filtrado y túneles per-dispositivo en un mismo servidor sin glue entre DNS blocker y VPN
- Evasión DPI nativa mediante fragmentación de SNI/ClientHello para dominios bloqueados
- Sin root, sin dispositivo TUN; WireGuard ejecutado en userspace con boringtun + smoltcp
- No telemetría ni phone-home; único outbound es check GitHub horario y fetch de listas configuradas
- Hot-reload de reglas, egresses y puertos sin reinicio del servicio
- Sin servidor DHCP integrado (requiere configuración externa en router o per-dispositivo)
- Maturity v0.1.x con un solo desarrollador; no es software maduro como Pi-hole o AdGuard Home
- Requiere host networking para perfiles per-dispositivo; bridge mode necesita FERRITE_PANEL_IP configurado
- No termina TLS; el cliente valida certificados end-to-end (no MITM)
- Port 53 puede fallar sin --cap-add=NET_BIND_SERVICE en Docker
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Usar docker-compose con network_mode: host para ver IPs reales de clientes. Montar /var/lib/ferrite para persistencia. Preferir imagen GHCR no Docker Hub. Configurar FERRITE_PANEL_IP si usa bridge mode y publicar 443/tcp para selective routing. Establecer contraseña antes exponer API en 8080.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.

