Last Updated on 22/06/2023 by administrator
Instalace Speedtestu na Ubuntu 22.04 (Speedtest Ubuntu 22.04)
Speedtest Ubuntu 22.04.
Motivace:
Jedná se o jednoduchý prográmek, který je možné nainstalovat pod Ubuntu. Lze tak měřit rychlosti mezi zařízením připojené do sítě a Ubuntu serverem.
Speedtest na Ubuntu 22.04 v praxi používám napříč domácí síti, abych zjistit reálnou rychlost wifi sítě po domě.
Možnost je také namapovat IP adresu Ubuntu server s Vaší veřejnou IP adresou a zjistit reálnou rychlost mezi libovolným vzdáleným hostem a Vaší síti.
OS:
Implementace instalace byla prováděna na Ubuntu 22.04 LTS.
Implementace [1]:
Základní instalace prográmku Speedtest:
Příkazem apt update se provede aktualizace seznamu balíčků z repozitářů:
apt update
Stažení a instalace dalších potřebných balíčků pro Speedtest, jako je webový server Apache2, skriptovací programovací jazyk PHP a distribuovaný systém správy verzí Git:
apt install apache2 php git -y
Přejít do domovské složky:
cd ~
Stažení prográmku Speedtest z githubu:
git clone https://github.com/librespeed/speedtest.git
Přejít do složky speedtest:
cd speedtest/
Překopírovat složku backend, soubor example-singleServer-pretty.html a všechny javascript soubory na webserver a to do /var/www/html/ složky:
sudo cp -R backend example-singleServer-pretty.html *.js /var/www/html/
Přejít do /var/www/html/ složky webového serveru:
cd /var/www/html/
Přejmenovat soubor example-singleServer-pretty.html na index.html:
sudo mv example-singleServer-pretty.html index.html
Změnit vlastníka všech souborů v aktuálním adresáři na www-data uživatele:
sudo chown -R www-data *
Základní konfigurace je hotova. Instalace a konfigurace byla prováděna na Ubuntu běžící na IP adrese 192.168.0.112.
Nyní je možné otestovat rychlost mezi námi a Ubuntu serverem přes webový link http://192.168.0.112/
Pokročilá instalace prográmku Speedtest (volitelně):
Pokročilá instalace zahrnuje použití databáze. Není nutná, ale díky konfiguraci níže je možné z každého speedtestu vygenerovat unikátní webový link, který je možné sdílet mezi uživateli a je možné tyto statistiky uložit a vypsat posledních 100 měření.
Přejít do domovské složky:
cd ~
Přejít do složky speedtest:
cd speedtest/
překopírovat celou složku results do /var/www/html/ složky webového serveru
sudo cp -R results/ /var/www/html/
Přejít do /var/www/html/ složky webového serveru:
cd /var/www/html/
Opět změnit vlastníka všech souborů v aktuálním adresáři na www-data uživatele:
sudo chown -R www-data *
Přejít do složky results:
cd results/
Ve složce results je soubor telemetry_mysql.sql, který je potřeba načíst. Údajná podpora je pro MySQL, PortgreSQL a SQLite. V tomto článku bude použita MySQL databáze. Stažení a instalace MySQL serveru se provede příkazem níže:
sudo apt install mysql-server -y
Přihlášení do databáze mysql:
sudo mysql
Nastavit heslo pro root uživatele, pro příklad bude nastaveno heslo root123:
mysql> ALTER USER 'root'@'localhost' identified with mysql_native_password by 'root123';
Vytvořit novou databázi s názvem speedtest:
mysql> CREATE DATABASE speedtest;
Příkaz flush privileges; aplikuje nové změny:
mysql> flush privileges;
Opuštění MySQL:
mysql> exit
Je potřeba editovat telemetry_settings.php soubor
vi telemetry_settings.php
V souboru telemetry_settings.php lze vidět, že je možné upravovat parametry pro MySQL, PortgreSQL, nebo SQLite. Jak již bylo zmíněno, v tomto článku je použita MySQL databáze, proto zvolit jako db_type mysql. Zvolit libovolné heslo pro stats_password, v tomto případě bude použito heslo pass123. Toto heslo bude sloužit pro přístup ke všem naměřeným rychlostem, což bude ukázáno později. Parametr enable_id_obfuscation bude nastaven na hodnotu True, což zamezí tomu, aby uživatelé nemohli uhodnou URL adresy jiných speedtestů.
// Type of db: "mysql", "sqlite" or "postgresql" $db_type = 'mysql'; // Password to login to stats.php. Change this!!! $stats_password = 'pass123'; // If set to true, test IDs will be obfuscated to prevent users from guessing URLs of other tests $enable_id_obfuscation = true;
V souboru telemetry_settings.php je nutné přepsat také nastavení MySQL. Jako MySql_username bude zvolen root. Výše bylo k uživateli root přiřazeno heslo root123, což nastavuje parametr MySql_password. Jedná se lokální databázi, proto v parametru MySql_hostname zvolit localhost. Jméno databáze se nastavuje v parametru MySql_databasename je speedtest, což bylo vytvořeno výše v databázi MySQL :
// Mysql settings $MySql_username = 'root'; $MySql_password = 'root123'; $MySql_hostname = 'localhost'; $MySql_databasename = 'speedtest';
Tento upravený soubor telemetry_mysql.sql naimportovat do již vytvořené databáze se jménem speedtest (heslo pro root uživatele bylo vytvořeno jako root123):
sudo mysql -u root -p speedtest < /var/www/html/results/telemetry_mysql.sql
Pro ověření importu souboru telemetry_mysql.sql se přihlásit do MySQL pod rootem:
mysql -u root -p
Je potřeba vybrat databázi speedtest:
mysql> USE speedtest;
Příkaz níže vypíše všechny tabulky databáze speedtest:
mysql> show tables;
Výpis příkazu show tables; by měl ukázat tabulku speedtest_users:
+---------------------+ | Tables_in_speedtest | +---------------------+ | speedtest_users | +---------------------+ 1 row in set (0.00 sec)
Opuštění MySQL:
mysql> exit
Přejít do /var/www/html/ složky webového serveru:
cd /var/www/html/
Překopírovat soubor example-singleServer-full.html jako index.html v /var/www/html/ složce:
sudo cp ~/speedtest/example-singleServer-full.html index.html
Je nutné nainstalovat balíček phpmyadmin, který obsahuje balíčky, které jsou potřeba k vygenerování statistik (nepřišel jsem na to o jaký balíček přesně jde, každopádně je možné použít phpmyadmin jako GUI pro správu databáze v budoucnu).
sudo apt install phpmyadmin -y
Při instalaci bude dotázáno, který webový server je potřeba rekonfigurovat. V tomto případě bude použitý webový server apache2 (ten byl nainstalován při úplně nahoře). Mezerníkem označit [*] možnost apache2 a opětovným stisknutím mezerníku se přesune na OK. Pokud se tato možnost neoznačí, nebude to negenerovat statistiky:
Heslo pro přístup k phpmyadmin je možné zvolit libovolně a může se lišit od ostatních hesel nakonfigurovaných výše:
Hotovo, nyní je možné opět otestovat rychlost mezi námi a Ubuntu serverem přes webový link http://192.168.0.112/
Každému speedtestu je po měření vygenerován unikátní link, která leze sdílet. V tomto případě šlo o link http://192.168.0.112/results/?id=0pozxwl
Všechny uložené statistiky naměřených rychlostí lze najít pod tímto http://<IP adresa Ubuntu>/results/stats.php webovým linkem. V tomto případě je to pod http://192.168.0.112/results/stats.php
Jako heslo bylo nastaveno pass123 a to v souboru v telemetry_settings.php, který byl konfigurován výše.
Zde je možné filtrovat rychlosti podle unikátních linků, které vygenerovává každý test (výše nám byl vygenerováno ID 0pozxwl), nebo zobrazit posledních 100 testů:
Vše hotovo.
Zdroj:
[1] https://github.com/librespeed/speedtest