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
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 |
IPv6 (dual-stack) untuk server yang ingin tampil di Speedtest.net di sebagian besar wilayah.
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.
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
| Port | Protokol | Arah | Fungsi |
|---|---|---|---|
8080 | TCP / UDP | Inbound / Outbound | Port utama Speedtest Server |
5060 | TCP / UDP | Inbound / Outbound | Packet Loss Measurement |
80 | TCP | Inbound / Outbound | HTTP (Legacy & ACME Challenge) |
443 | TCP | Inbound / Outbound | HTTPS (setelah Let's Encrypt aktif) |
22 | TCP | Inbound | SSH Management |
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
# 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)
# 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)
# 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
A (IPv4) dan AAAA (IPv6) yang mengarah ke IP publik server. Tanpa AAAA, server tidak akan lolos review dual-stack.
Instalasi OoklaServer Daemon
Gunakan script instalasi resmi dari Ookla. Jalankan sebagai user speedtest (non-root).
# 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
http://IP-SERVER:8080 atau http://speedtest.example.com:8080.
Konfigurasi Dual Stack & OoklaServer.properties
Edit file konfigurasi agar mendukung IPv6 penuh dan pengaturan optimal.
5.1 Edit File 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):
# 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
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
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
# 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
active (running) dan enabled, maka service akan otomatis hidup setiap kali server di-reboot.
Konfigurasi Firewall (UFW)
Buka port yang dibutuhkan untuk IPv4 dan IPv6.
# 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
IPV6=yes di /etc/default/ufw.
Verifikasi Instalasi & Dual Stack
8.1 Cek Proses & Port Listening
# 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
# 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
curl -4 dan curl -6 berhasil, dual-stack sudah berfungsi dengan baik.
Submit Server ke Ookla (Listing Publik)
- Daftarkan akun di Speedtest Servers (portal resmi Ookla).
- Isi form Submit Server dengan data:
- Hostname:
speedtest.example.com:8080(jangan pakai IP mentah) - Lokasi geografis yang akurat
- Provider / Organisasi
- Hostname:
- Pastikan geoIP MaxMind sudah benar (cek di maxmind.com dan request koreksi jika perlu).
- Proses review biasanya 24–48 jam.
- Setelah disetujui, Let's Encrypt akan otomatis provision sertifikat SSL.
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
# 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
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 = trueagar 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.propertiesdan unit systemd.
# Backup mingguan konfigurasi
0 3 * * 0 tar -czf /var/backups/ooklaserver-$(date +\%F).tar.gz \
/opt/speedtest/OoklaServer.properties \
/etc/systemd/system/ooklaserver.service