Ookla Speedtest Server Dual Stack

Panduan Instalasi Lengkap, Konfigurasi IPv4 + IPv6, dan Systemd Auto-Start

Debian 11/12/13 & Ubuntu 20.04/22.04/24.04 · Dual Stack Mandatory · Systemd Service

8080
Port Utama
IPv4+IPv6
Dual Stack
systemd
Auto Start
Riset & Dokumentasi Teknis oleh HARRY DERTIN SUTISNA — ALSYUNDAWY IT SOLUTION
0

Ringkasan Status Komponen & Arsitektur

Komponen utama yang digunakan dalam panduan instalasi Ookla Speedtest Server dual-stack ini:

Komponen Versi / Status Peran & Catatan
OoklaServer Daemon Latest Stable Server endpoint resmi Speedtest.net (public & private)
Mode Jaringan Dual Stack IPv4 + IPv6 wajib (khususnya negara dengan adopsi IPv6 ≥ 30%)
Service Manager systemd Auto-start saat boot, restart on failure, non-root user
Port Utama 8080 / 5060 TCP & UDP (8080 untuk test, 5060 untuk packet loss)
SSL / HTTPS Let's Encrypt Aktif otomatis setelah server disetujui oleh Ookla
Penting: Sejak 2023/2024, Ookla mewajibkan dukungan IPv6 (dual-stack) untuk server yang ingin tampil di Speedtest.net di sebagian besar wilayah.
1

Pendahuluan

Tutorial ini memberikan petunjuk lengkap dan teruji untuk menginstal Ookla Speedtest Server (OoklaServer) di lingkungan Debian atau Ubuntu dengan dukungan penuh Dual Stack (IPv4 + IPv6) dan konfigurasi systemd service agar daemon otomatis berjalan setiap kali server di-reboot.

OoklaServer memungkinkan ISP, hosting provider, atau organisasi untuk menyelenggarakan endpoint Speedtest sendiri, sehingga hasil pengukuran bandwidth menjadi lebih akurat bagi pelanggan, sekaligus berkontribusi pada jaringan global Speedtest.net.

Catatan Resmi: Disarankan menjalankan daemon sebagai user non-root. Setelah instalasi, server harus didaftarkan dan disubmit ke Ookla untuk di-review sebelum dapat tampil publik di Speedtest.net.
2

Persyaratan Sistem

Spesifikasi Minimal Rekomendasi Production
CPU 2 Core Quad Core ≥ 3.0 GHz
RAM 2 GB 8 GB – 32 GB+
Storage 10 GB SSD 25+ GB SSD / NVMe
Bandwidth 500 Mbps+ ≥ 1 Gbps (wajib untuk listing publik)
NIC 1 Gbps 10 Gbps (untuk multi-gigabit)
OS Platform Debian 11/12/13 Ubuntu 20.04 / 22.04 / 24.04 LTS
Jaringan Dual Stack (IPv4 + IPv6) wajib — Domain harus memiliki record A dan AAAA
Port Jaringan yang Harus Dibuka
PortProtokolArahFungsi
8080TCP / UDPInbound / OutboundPort utama Speedtest Server
5060TCP / UDPInbound / OutboundPacket Loss Measurement
80TCPInbound / OutboundHTTP (Legacy & ACME Challenge)
443TCPInbound / OutboundHTTPS (setelah Let's Encrypt aktif)
22TCPInboundSSH Management
3

Persiapan Server (Debian / Ubuntu)

Lakukan update sistem, buat user khusus non-root, dan pastikan dual-stack sudah berfungsi sebelum instalasi.

3.1 Update Sistem & Install Utility
Bash — Root / Sudo
# Update repository & upgrade sistem
sudo apt update && sudo apt upgrade -y

# Install utility dasar
sudo apt install -y curl wget gnupg2 lsb-release \
  ca-certificates apt-transport-https ufw \
  net-tools dnsutils iproute2
3.2 Buat User Non-Root (Rekomendasi Keamanan)
Bash
# Buat user khusus speedtest
sudo adduser --disabled-password --gecos "" speedtest

# Buat direktori instalasi
sudo mkdir -p /opt/speedtest
sudo chown speedtest:speedtest /opt/speedtest
3.3 Verifikasi Dual Stack (IPv4 + IPv6)
Bash
# Cek alamat IPv4 & IPv6
ip -4 addr show
ip -6 addr show

# Test konektivitas IPv6
ping6 -c 3 2001:4860:4860::8888
curl -6 -I https://ipv6.google.com

# Pastikan DNS AAAA record sudah aktif (ganti domain Anda)
dig AAAA speedtest.example.com +short
dig A speedtest.example.com +short
Wajib: Domain harus memiliki record A (IPv4) dan AAAA (IPv6) yang mengarah ke IP publik server. Tanpa AAAA, server tidak akan lolos review dual-stack.
4

Instalasi OoklaServer Daemon

Gunakan script instalasi resmi dari Ookla. Jalankan sebagai user speedtest (non-root).

Bash — sebagai user speedtest
# Masuk sebagai user speedtest
sudo su - speedtest
cd /opt/speedtest

# Download script instalasi resmi
wget https://install.speedtest.net/ooklaserver/ooklaserver.sh

# Beri permission execute
chmod a+x ooklaserver.sh

# Jalankan instalasi
./ooklaserver.sh install

Saat diminta konfirmasi platform, ketik y lalu Enter. Script akan:

  • Mendeteksi OS (linux64)
  • Mengunduh binary OoklaServer terbaru
  • Mengekstrak file ke direktori saat ini
  • Menjalankan daemon secara otomatis
Setelah instalasi berhasil, Anda dapat menguji dengan membuka browser ke http://IP-SERVER:8080 atau http://speedtest.example.com:8080.
5

Konfigurasi Dual Stack & OoklaServer.properties

Edit file konfigurasi agar mendukung IPv6 penuh dan pengaturan optimal.

5.1 Edit File Properties
/opt/speedtest/OoklaServer.properties
# Pastikan file properties ada (jika belum, copy dari default)
cd /opt/speedtest
cp -n OoklaServer.properties.default OoklaServer.properties

# Edit dengan nano / vim
nano OoklaServer.properties

Pastikan / uncomment baris-baris berikut (sesuaikan domain Anda):

OoklaServer.properties (isi penting)
# Aktifkan IPv6 (WAJIB untuk Dual Stack)
OoklaServer.useIPv6 = true

# Domain yang diizinkan mengakses server
OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net, speedtest.example.com

# Port (jangan diubah jika ingin listing publik)
OoklaServer.tcpPorts = 5060,8080
OoklaServer.udpPorts = 5060,8080

# Auto Update
OoklaServer.enableAutoUpdate = true

# Let's Encrypt SSL (akan aktif setelah server disetujui Ookla)
OoklaServer.ssl.useLetsEncrypt = true

# Logging (opsional, sangat berguna untuk debugging)
logging.loggers.app.name = Application
logging.loggers.app.channel.class = FileChannel
logging.loggers.app.channel.pattern = %Y-%m-%d %H:%M:%S [%P - %I] [%p] %t
logging.loggers.app.channel.path = ${application.dir}/ooklaserver.log
logging.loggers.app.level = information
Setelah mengubah properties, selalu restart daemon agar perubahan diterapkan.
6

Konfigurasi Systemd Service (Auto-Start saat Reboot)

Buat unit file systemd agar OoklaServer otomatis berjalan setiap kali server boot, dan restart otomatis jika crash.

6.1 Buat File Service
/etc/systemd/system/ooklaserver.service
sudo tee /etc/systemd/system/ooklaserver.service > /dev/null << 'EOF'
[Unit]
Description=Ookla Speedtest Server (OoklaServer)
Documentation=https://support.ookla.com/
After=network-online.target
Wants=network-online.target
StartLimitIntervalSec=60
StartLimitBurst=5

[Service]
Type=forking
User=speedtest
Group=speedtest
WorkingDirectory=/opt/speedtest
ExecStart=/opt/speedtest/ooklaserver.sh start
ExecStop=/opt/speedtest/ooklaserver.sh stop
ExecReload=/opt/speedtest/ooklaserver.sh restart
Restart=on-failure
RestartSec=10
TimeoutStartSec=30
TimeoutStopSec=30
KillMode=process

# Keamanan tambahan
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
6.2 Aktifkan & Jalankan Service
Bash
# Reload systemd
sudo systemctl daemon-reload

# Enable service agar auto-start saat reboot
sudo systemctl enable ooklaserver.service

# Stop instance yang mungkin masih berjalan dari instalasi
sudo systemctl stop ooklaserver.service 2>/dev/null || true
# atau jika masih pakai script lama:
sudo su - speedtest -c "cd /opt/speedtest && ./ooklaserver.sh stop"

# Start via systemd
sudo systemctl start ooklaserver.service

# Cek status
sudo systemctl status ooklaserver.service

# Pastikan enabled
systemctl is-enabled ooklaserver.service
Berhasil: Jika status menunjukkan active (running) dan enabled, maka service akan otomatis hidup setiap kali server di-reboot.
7

Konfigurasi Firewall (UFW)

Buka port yang dibutuhkan untuk IPv4 dan IPv6.

Bash
# Allow SSH dulu agar tidak ter-lock
sudo ufw allow 22/tcp

# Port Speedtest Server
sudo ufw allow 8080/tcp
sudo ufw allow 8080/udp
sudo ufw allow 5060/tcp
sudo ufw allow 5060/udp

# HTTP & HTTPS (untuk Let's Encrypt & legacy)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Aktifkan UFW
sudo ufw --force enable
sudo ufw status verbose
UFW secara default menerapkan aturan yang sama untuk IPv4 dan IPv6 jika IPV6=yes di /etc/default/ufw.
8

Verifikasi Instalasi & Dual Stack

8.1 Cek Proses & Port Listening
Bash
# Status service
sudo systemctl status ooklaserver.service

# Cek port yang listening (IPv4 & IPv6)
sudo ss -tulnp | grep -E '8080|5060'

# Atau dengan netstat
sudo netstat -tulnp | grep -E '8080|5060'

# Cek log
sudo tail -f /opt/speedtest/ooklaserver.log
# atau
sudo journalctl -u ooklaserver.service -f
8.2 Test dari Browser / CLI
Bash
# Test HTTP IPv4
curl -4 -I http://speedtest.example.com:8080

# Test HTTP IPv6
curl -6 -I http://speedtest.example.com:8080

# Test dari luar (ganti IP)
curl -I http://IP-PUBLIK-SERVER:8080
Jika kedua perintah curl -4 dan curl -6 berhasil, dual-stack sudah berfungsi dengan baik.
9

Submit Server ke Ookla (Listing Publik)

  1. Daftarkan akun di Speedtest Servers (portal resmi Ookla).
  2. Isi form Submit Server dengan data:
    • Hostname: speedtest.example.com:8080 (jangan pakai IP mentah)
    • Lokasi geografis yang akurat
    • Provider / Organisasi
  3. Pastikan geoIP MaxMind sudah benar (cek di maxmind.com dan request koreksi jika perlu).
  4. Proses review biasanya 24–48 jam.
  5. Setelah disetujui, Let's Encrypt akan otomatis provision sertifikat SSL.
Larangan: Jangan submit menggunakan IP address mentah (contoh: 103.x.x.x:8080). Harus menggunakan hostname yang resolvable (A + AAAA).
10

Troubleshooting & Solusi Masalah

Gejala / Error Penyebab Utama Solusi Perbaikan
Connection Refused :8080 Daemon tidak berjalan atau firewall systemctl status ooklaserver + buka port UFW
IPv6 tidak terdeteksi useIPv6 masih false / tidak ada AAAA Set OoklaServer.useIPv6 = true + pastikan AAAA record
Service gagal start setelah reboot Path ExecStart salah / permission Cek WorkingDirectory & User di unit file
SSL / Let's Encrypt gagal Server belum disetujui Ookla Tunggu approval, HTTPS baru aktif setelah review
Geo Location salah MaxMind database tidak akurat Submit koreksi di MaxMind GeoIP Data Correction
Perintah Live Monitoring
Bash — Live Debugging
# Monitor log systemd
sudo journalctl -u ooklaserver.service -f -n 100

# Monitor log file Ookla
sudo tail -f /opt/speedtest/ooklaserver.log

# Restart service
sudo systemctl restart ooklaserver.service
11

Keamanan, Hardening & Best Practices

  • Jalankan sebagai non-root: Selalu gunakan user speedtest (atau user khusus lain).
  • Batasi allowedDomains: Hanya izinkan domain yang diperlukan di properties.
  • Enable Auto Update: Biarkan OoklaServer.enableAutoUpdate = true agar mendapat patch performa & keamanan terbaru.
  • Firewall ketat: Hanya buka port yang benar-benar dibutuhkan.
  • Monitoring: Aktifkan logging dan pantau journalctl secara berkala.
  • Backup konfigurasi: Simpan salinan OoklaServer.properties dan unit systemd.
Contoh Cron Backup Config
# Backup mingguan konfigurasi
0 3 * * 0 tar -czf /var/backups/ooklaserver-$(date +\%F).tar.gz \
  /opt/speedtest/OoklaServer.properties \
  /etc/systemd/system/ooklaserver.service
Dokumentasi teknis berdasarkan riset & pengujian lapangan instalasi Ookla Speedtest Server Dual Stack di Debian & Ubuntu