|
NETTOOLS – Monitor de red y test de velocidad autoalojado
Docker • Manual • Features • Screenshots • API
NetTools es una aplicación web autoalojada para monitorizar tu red local y medir la velocidad de tu conexión a Internet. Ofrece una interfaz moderna y adaptable con tres módulos principales: Net Speed (pruebas de velocidad), Net Alert (descubrimiento de dispositivos) y Net Check (herramientas de diagnóstico).
Funciones principales
- Pruebas de velocidad automáticas y manuales con Ookla Speedtest CLI
- Descubrimiento de dispositivos en la red local con arp-scan y nmap
- Herramientas de diagnóstico: Ping, Traceroute y NSLookup
- Notificaciones por Telegram cuando se detectan nuevos dispositivos
- Gráficos interactivos con velocidad, latencia e historial de dispositivos
- Temas claro, oscuro y automático
- Colores de acento personalizables
- Zona horaria configurable
- API REST completa
- Sin dependencias en la nube: todo se ejecuta en tu servidor
Funcionalidades
Monitor de red y test de velocidad autoalojado.
Net Speed
- Prueba de velocidad manual con selección de servidor
- Pruebas automáticas programadas (15 min – 24 h)
- Gráficos de historial de velocidad (descarga/subida)
- Gráficos de latencia (ping/jitter)
- Promedios horarios de velocidad
- Tabla de pruebas recientes
- Estadísticas: mejor descarga, mejor subida, mejor ping, total de pruebas
Net Alert
- Escaneo automático de red local (arp-scan + nmap)
- Detección de nuevos dispositivos
- Identificación del fabricante por dirección MAC
- Edición de dispositivos: nombre, tipo, ubicación, descripción
- Etiquetado IP estática o DHCP
- Filtros: todos, en línea, fuera de línea, nuevos, guardados, manuales
- Ordenar por nombre, IP, MAC, fabricante, ubicación, estado
- Historial de dispositivos conectados (gráfico)
- Notificaciones por Telegram para nuevos dispositivos
- Ping rápido desde la tarjeta del dispositivo
Net Check
- Ping: una IP o todos los dispositivos guardados
- Traceroute: visualización de ruta con mapa de saltos y tabla detallada
- NSLookup / DNS: consultas A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, ANY con selector de servidor DNS
Configuración
- Frecuencia de pruebas automáticas
- Frecuencia de escaneo de red
- Rango de red (CIDR)
- Retención del historial
- Zona horaria
- Notificaciones de Telegram (token del bot + chat ID + prueba de conexión)
- Personalización de colores (acento, fondo, descarga, subida)
- Exportación de datos (JSON)
- Limpieza de historial y dispositivos
Instalación con Docker
Docker Run
docker run -d \
--name nettools \
--network host \
-v nettools-data:/data \
-e TZ=Europe/Madrid \
-e NETTOOLS_PORT=8080 \
-e NETTOOLS_BACKEND_PORT=8000 \
--restart unless-stopped \
mbraut/nettools:latest
Docker Compose
services:
nettools:
image: mbraut/nettools:latest
container_name: nettools
restart: unless-stopped
network_mode: host
volumes:
- nettools-data:/data
environment:
- TZ=Europe/Madrid
- NETTOOLS_PORT=8080 # Puerto de la interfaz web
- NETTOOLS_BACKEND_PORT=8000 # Puerto interno del backend API
volumes:
nettools-data:
driver: local
docker compose up -d
Accede a http://tu-servidor:8080
Nota: network_mode: host es obligatorio para que arp-scan y nmap puedan descubrir dispositivos en tu red local. Sin él, las pruebas de velocidad y herramientas de diagnóstico funcionarán, pero el escaneo de red no detectará dispositivos.
Instalación Manual
Requisitos
- Python 3.10+
- Nginx
- Herramientas de red: arp-scan, nmap, traceroute, dnsutils, iputils-ping, net-tools
- (Recomendado) Ookla Speedtest CLI
Pasos
# 1. Clonar el repositorio
git clone https://github.com/Enoret/Nettools.git
cd Nettools
# 2. Instalar dependencias del sistema
sudo apt-get install -y arp-scan nmap iputils-ping net-tools traceroute dnsutils nginx
# 3. Instalar Ookla Speedtest CLI (recomendado)
# Ver: https://www.speedtest.net/apps/cli
# Si no se instala, se utilizará speedtest-cli (Python) como alternativa
# 4. Configurar backend
sudo mkdir -p /opt/nettools
sudo cp docker/backend/*.py /opt/nettools/
sudo cp docker/backend/requirements.txt /opt/nettools/
cd /opt/nettools
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 5. Configurar frontend
sudo cp -r Nettools/nettools/* /var/www/html/
# 6. Configurar Nginx
sudo cp docker/nginx/nginx.conf /etc/nginx/sites-available/nettools
sudo ln -sf /etc/nginx/sites-available/nettools /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
# 7. Crear servicio systemd
sudo tee /etc/systemd/system/nettools.service > /dev/null <<EOF
[Unit]
Description=Backend de NetTools
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/nettools
ExecStart=/opt/nettools/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=5
Environment=NETTOOLS_DB_PATH=/data/nettools.db
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
EOF
sudo mkdir -p /data
sudo systemctl daemon-reload
sudo systemctl enable nettools
sudo systemctl start nettools
Accede a http://tu-servidor:8080
Actualización
Docker
docker pull mbraut/nettools:latest
docker compose down
docker compose up -d
Manual
cd Nettools
git pull
cp -r nettools/* /var/www/html/
cp docker/backend/*.py /opt/nettools/
systemctl restart nettools
Arquitectura
NETTOOLS_PORT (por defecto 8080)
|
[ Nginx ]
/ \
Estático /api/*
(Frontend) |
[ Uvicorn :NETTOOLS_BACKEND_PORT ]
(FastAPI)
|
[ Base de datos SQLite ]
/data/nettools.db
| Componente | Tecnología |
|---|---|
| Frontend | HTML5, CSS3, JavaScript (Vanilla) |
| Gráficos | ApexCharts |
| Iconos | Remix Icon |
| Backend | Python 3.12, FastAPI, Uvicorn |
| Base de datos | SQLite (modo WAL) |
| Prueba de velocidad | Ookla Speedtest CLI / speedtest-cli (alternativa) |
| Escaneo de red | arp-scan, nmap, python-nmap |
| Notificaciones | Telegram Bot API |
SCREENSHOTS





API
El backend expone una API REST accesible vía Nginx en /api/. El puerto del backend es configurable mediante NETTOOLS_BACKEND_PORT (por defecto: 8000).
(Las tablas de endpoints se mantienen igual, ya que son rutas técnicas.)
Configuración Telegram
- Crea un bot con @BotFather en Telegram
- Copia el Bot Token
- Obtén tu Chat ID (puedes usar @userinfobot)
- En NetTools > Settings > Telegram Notifications:
- Activa Telegram
- Pega el Bot Token y el Chat ID
- Haz clic en “Send Test” para verificar
- Guarda la configuración
Recibirás una notificación cada vez que se detecte un nuevo dispositivo en tu red.
Volumen de datos
| Ruta | Contenido |
|---|---|
| /data/nettools.db | Base de datos SQLite con pruebas, dispositivos y configuración |
Para hacer una copia de seguridad, simplemente copia el archivo /data/nettools.db.
Requisitos del sistema
| Recurso | Mínimo |
|---|---|
| CPU | 1 núcleo |
| RAM | 256 MB |
| Disco | 100 MB + base de datos |
| Red | Acceso LAN para escaneo |
| SO | Linux (Docker o instalación directa) |
Compatible con amd64, arm64 (Raspberry Pi 4/5) y armhf.
Licencia
Licencia MIT – ver LICENSE
Créditos
Desarrollado por https://bytebeat.es
NetTools – Monitor de red y test de velocidad autoalojado


