Instala un OoklaServer en Debian 12 y Debian 13
Esta guía instala el servidor público Speedtest de Ookla en un host Debian. DNS, firewall y registro ante Ookla permanecen bajo control del administrador.
Antes de comenzar
Usa un host Debian 12/13 nuevo o revisado con IPv4 o IPv6 público. Elige un hostname como speedtest.ejemplo.com y crea los registros DNS antes de solicitar el certificado.
- Ejecuta como root o mediante sudo.
- Permite los puertos requeridos por la documentación actual de Ookla y TCP/80 para el desafío del certificado.
- Lee los requisitos y el proceso de registro de Ookla antes de publicar el servidor.
Usa el instalador versionado
El instalador detecta Debian 12/13, pide hostname y correo de contacto, instala el servidor oficial, crea la unidad systemd y puede aplicar un perfil balanceado opcional. No crea registros DNS.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bashDescarga el instalador inmutable v1 e inicia el flujo interactivo con privilegios administrativos.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bash -s -- statusMuestra el estado del servicio y la configuración local guardada sin cambiar el host.
curl -fsSL https://scripts.lrq.lat/speedtest/v1.1.7/install.sh | sudo bash -s -- tlsRepite solo la etapa de Certbot y asociación del certificado cuando DNS o el puerto 80 estén listos.
Instalación manual y segura
Este camino deja cada cambio explícito. Úsalo donde exista control de cambios o no quieras emplear el instalador rápido.
sudo apt update
sudo apt install -y ca-certificates curl tarActualiza el índice APT e instala las herramientas usadas para descargar y descomprimir la distribución oficial.
sudo install -d -m 0755 /opt/ooklaserver
curl -fsSLo /tmp/ooklaserver.sh https://install.speedtest.net/ooklaserver/ooklaserver.sh
sudo sh /tmp/ooklaserver.sh --force --installdir /opt/ooklaserver installDescarga el asistente oficial de Ookla e instala los archivos en /opt/ooklaserver sin responder manualmente al prompt del proveedor.
[Unit]
Description=OoklaServer
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
WorkingDirectory=/opt/ooklaserver
RuntimeDirectory=ooklaserver
PIDFile=/run/ooklaserver/ooklaserver.pid
ExecStart=/opt/ooklaserver/OoklaServer --daemon --pidfile=/run/ooklaserver/ooklaserver.pid
Restart=on-failure
[Install]
WantedBy=multi-user.targetEsta unidad systemd supervisa el binario del proveedor sin depender de comandos amplios para matar procesos.
sudo install -m 0644 /dev/stdin /etc/systemd/system/ooklaserver.service <<'EOF'
[Unit]
Description=OoklaServer
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
WorkingDirectory=/opt/ooklaserver
RuntimeDirectory=ooklaserver
PIDFile=/run/ooklaserver/ooklaserver.pid
ExecStart=/opt/ooklaserver/OoklaServer --daemon --pidfile=/run/ooklaserver/ooklaserver.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now ooklaserverEscribe la unidad, recarga systemd e inicia el servicio ahora y en próximos arranques.
Tuning balanceado opcional
Aplícalo solo después de entender su impacto en el host. El perfil usa un drop-in propio, por lo que puede eliminarse sin editar /etc/sysctl.conf.
sysctl net.ipv4.tcp_available_congestion_control
sudo tee /etc/sysctl.d/90-lrqnet-ooklaserver.conf >/dev/null <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.core.somaxconn=65535
net.core.rmem_max=16777216
net.core.wmem_max=16777216
EOF
sudo sysctl --systemConfirma BBR, crea el perfil opcional y carga los drop-ins. No lo apliques si otro equipo administra la política de red del host.
TLS con Certbot
El comando TLS usa HTTP-01 standalone. El dominio debe resolver a este host y el puerto 80 debe ser accesible. Después de la emisión, el timer systemd de Certbot renueva el certificado automáticamente y un hook de deploy reinicia OoklaServer. Si falla, el servidor instalado continúa funcionando.
sudo apt install -y certbot
sudo systemctl enable --now certbot.timer
sudo certbot certonly --standalone -d speedtest.ejemplo.com -m admin@ejemplo.com --agree-tos --no-eff-emailInstala Certbot, habilita explícitamente su timer de renovación automática y obtiene un certificado Let’s Encrypt. Sustituye hostname y correo por los valores reales.
sudo tee -a /opt/ooklaserver/OoklaServer.properties >/dev/null <<'EOF'
openSSL.server.certificateFile = /etc/letsencrypt/live/speedtest.ejemplo.com/fullchain.pem
openSSL.server.privateKeyFile = /etc/letsencrypt/live/speedtest.ejemplo.com/privkey.pem
EOF
sudo systemctl restart ooklaserverAsocia certificado y clave privada a OoklaServer y reinicia el servicio. Usa el hostname real en ambas rutas.
sudo install -d -m 0755 /etc/letsencrypt/renewal-hooks/deploy
sudo tee /etc/letsencrypt/renewal-hooks/deploy/ooklaserver-restart >/dev/null <<'EOF'
#!/bin/sh
systemctl restart ooklaserver
EOF
sudo chmod 750 /etc/letsencrypt/renewal-hooks/deploy/ooklaserver-restart
sudo systemctl status certbot.timer --no-pagerCrea el hook de deploy que reinicia OoklaServer tras cada renovación correcta y confirma que el timer de renovación automática de Certbot está activo.
Validación y mantenimiento
Verifica el servicio antes de completar el registro público. Mantén las configuraciones críticas bajo control de cambios.
sudo systemctl status ooklaserver --no-pager
sudo journalctl -u ooklaserver -n 100 --no-pager
sudo /opt/ooklaserver/OoklaServer -vMuestra estado, logs recientes y versión instalada.
sudo certbot renew --dry-runPrueba la renovación sin cambiar el certificado activo.