Deployn

Internet Geschwindigkeit überwachen mit Speedtest Tracker

Mit Speedtest Tracker kannst du die Internetgeschwindigkeit deines Anschlusses überwachen.

Internet Geschwindigkeit überwachen mit Speedtest Tracker-heroimage

Seit Dezember 2021 gewährt § 57 Abs. 4 TKG Verbrauchern das Recht auf eine Minderung des monatlichen Entgelts oder sogar eine außerordentliche Kündigung des Vertrags “im Falle einer erheblichen, kontinuierlichen oder regelmäßig wiederkehrenden Abweichung” zwischen der versprochenen und der tatsächlichen Leistung. Um dies zu belegen, stellt die Bundesnetzagentur eine Desktop-App bereit, mit der die Geschwindigkeit offiziell gemessen werden kann.

Doch was ist, wenn man seine Internetverbindung dauerhaft im Auge behalten möchte? Hier kommt Speedtest Tracker ins Spiel. Mit dieser Open-Source-Anwendung kann man seine Internetgeschwindigkeit automatisch und kontinuierlich überwachen – perfekt für die persönliche Dokumentation und Analyse. Für offizielle Beschwerden sollte die App der Bundesnetzagentur verwendet werden, aber für die eigene Transparenz und Kontrolle schauen wir uns an, wie wir Speedtest Tracker einrichten können.

Vorbereitung

Zunächst benötigt man ein Gerät, auf dem Docker und Docker-Compose installiert sind. Idealerweise ist das ein Server, der direkt und drahtgebunden mit dem Router verbunden ist. Auf diesem Server erstellen wir drei Ordner für die Konfiguration und die Datenbank, außerdem eine docker-compose.yml Datei.

mkdir speedtest-tracker
cd speedtest-tracker
mkdir data
mkdir keys
mkdir db
touch docker-compose.yml

Docker Compose Datei

In der docker-compose.yml definieren wir die Dienste für den Speedtest Tracker und die Datenbank:

networks:
    proxy:
        external: true
        name: proxy
    internal:
        external: false

services:
    speedtest-tracker:
        container_name: speedtest-tracker
        environment:
            - PUID=1000
            - PGID=1000
            - DB_CONNECTION=pgsql
            - DB_HOST=db
            - DB_PORT=5432
            - DB_DATABASE=speedtest_tracker
            - DB_USERNAME=speedy
            - DB_PASSWORD=password
            - TZ=Europe/Berlin
        volumes:
            - ./data:/config
            - ./keys:/config/keys
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped
        networks:
            - internal
            - proxy
        depends_on:
            - db
    db:
        image: postgres:15
        restart: always
        environment:
            - POSTGRES_DB=speedtest_tracker
            - POSTGRES_USER=speedy
            - POSTGRES_PASSWORD=password
        volumes:
            - ./db:/var/lib/postgresql/data
        networks:
            - internal

Die PUID und PGID sollten auf den eigenen Benutzer und die Gruppe gesetzt werden. Dazu einfach id im Terminal eingeben, um die Werte zu ermitteln. Die Zeitzone kann geändert werden. Das Passwort der Datenbank sollten bei DB_PASSWORD und POSTGRES_PASSWORD geändert werden.

Reverse Proxy

Hat man keinen Reverse Proxy auf dem Server, muss die Netzwerk Konfiguration angepasst werden. In diesem Fall muss auch der Port 80 des Speedtest Trackers freigegeben werden.

Ansonsten kann man einen Proxy Host zum Container erstellen. Im Fall von Caddy würde das beispielsweise so aussehen, wenn man den Speedtest Tracker unter https://speedtest.domain.de erreichen möchte und dieser nur intern erreichbar sein soll:

https://speedtest.domain.de {
    @blocked not remote_ip private_ranges
    respond @blocked 403
    reverse_proxy speedtest-tracker:80
}

Einstellungen

Sobald die Container laufen, kann man sich im Speedtest Tracker mit dem Benutzernamen admin@example.com und dem Passwort password anmelden. Diese Anmeldeinformationen kann man in den Einstellungen ändern. In den “General”-Einstellungen findet man auch die Möglichkeit einen automatischen Zeitplan für die Geschwindigkeitsmessungen zu konfigurieren. Hierbei muss man das cron-Format beachten.

Ein paar Beispiele für Zeitpläne:

*/30 * * * * # alle 30 Minuten
0 * * * *    # jede Stunde
0 0 * * *    # jeden Tag um Mitternacht
0 22 * * 1-5 # Montag bis Freitag um 22 Uhr
0 0 * * 0    # jeden Sonntag um Mitternacht
0 0 1 * *    # jeden Monat am ersten um Mitternacht

Beispieldaten

Die gesammelten Daten können als CSV-Datei exportiert werden. Dabei wählt man aus den Spalten:

  • “ID”
  • “IP address”
  • “Service”
  • “Service ID”
  • “Server name”
  • “Download”
  • “Upload”
  • “Ping”
  • “Packet loss”
  • “Download jitter”
  • “Upload jitter”
  • “Ping jitter”
  • “Upload latency high”
  • “Upload latency low”
  • “Upload latency avg”
  • “Download latency high”
  • “Download latency low”
  • “Download latency avg”
  • “Comments”
  • “Scheduled”
  • “Created at” sowie
  • “Uploaded at”

diejenigen aus, die man gerne exportieren möchte.

Hier ein Beispielversuch mit Vodafone Gigabit Kabelinternet (1000 Mbit/s Download, 50 Mbit/s Upload) in Berlin. Ich habe den Speedtest Tracker über zwei Monate lang jede Stunde laufen lassen (vom 27.07.2024 bis zum 27.09.2024) und die Ergebnisse (1512 Messungen) analysiert:

  • 16 Messungen hatten keine Internetverbindung, das entspricht einer Verfügbarkeit von 98,94%
  • Bei 206 Messungen sind Pakete verloren gegangen.
  • Die durchschnittliche Downloadgeschwindigkeit lag bei 661,05 Mbit/s (Median 722,71 Mbit/s)
  • Die durchschnittliche Uploadgeschwindigkeit lag bei 49,37 Mbit/s (Median 53,98 Mbit/s)
  • Der durchschnittliche Ping lag bei 11,58ms (Median 9,99ms)

Die Auswertungen zeigen keine großen Unterschiede zwischen den Wochentagen:

Tag der WocheDownloadUploadPing
Montag624,6649,5211,43
Dienstag659,5048,9611,43
Mittwoch656,7048,3712,26
Donnerstag678,8748,6511,83
Freitag685,6448,5411,51
Samstag668,3051,0311,53
Sonntag653,6550,5211,09

Über den Tag hinweg sind leichte Schwankungen in der Downloadgeschwindigkeit erkennbar. Die höchste Geschwindigkeit wurde um 20 Uhr erreicht, die niedrigste um 3 Uhr morgens.

StundeDownloadUploadPing
00672,9549,7313,20
01331,9351,7510,17
02416,8952,1011,38
03229,8750,9913,13
04383,2750,0711,48
05657,5351,6314,19
06677,6850,5112,07
07670,9450,4412,01
08774,7146,6612,11
09794,9650,3510,65
10655,7846,0013,37
11810,3950,3812,19
12785,7147,7812,88
13690,1247,8512,62
14788,6946,5911,93
15809,3049,619,77
16593,8551,169,78
17794,6746,369,87
18707,3952,009,03
19752,6547,999,83
20843,6846,6910,83
21813,2446,7412,33
22527,6149,7411,72
23681,2751,6811,41

Hier kann man meine Rohdaten herunterladen

Fazit

Speedtest Tracker ist ein einfaches und effektives Tool, um die Internetgeschwindigkeit zu überwachen. Die Daten können einfach exportiert und ausgewertet werden. Die Installation ist einfach und schnell erledigt.


Diese Website verwendet Cookies. Diese sind notwendig, um die Funktionalität der Website zu gewährleisten. Weitere Informationen finden Sie in der Datenschutzerklärung