MikroSpeed Addon: Setup, Multi-Server Architecture & Settings Guide
📌 1. Overview & How MikroSpeed Works #
MikroSpeed is an automated, enterprise-grade bandwidth benchmarking agent engineered for MikroTik RouterOS devices. It bridges MikroWizard with a high-speed Rust implementation (btest-rs) of the MikroTik Bandwidth Test protocol.
┌─────────────────────────────────────────────────────────────┐
│ MikroWizard Core │
└──────────────────────────────┬──────────────────────────────┘
│ HTTP REST API (Port 8200)
│ (Bearer Token Auth)
▼
┌─────────────────────────────────────────────────────────────┐
│ MikroSpeed Server / POP Agent │
│ │
│ ┌──────────────────────┐ ┌─────────────────────────┐ │
│ │ FastAPI Manager │ ───► │ btest-rs Rust Engine │ │
│ │ (Port 8200) │ │ (Port 2000) │ │
│ └──────────────────────┘ └────────────┬────────────┘ │
└─────────────────────────────────────────────┼───────────────┘
│ MikroTik BTest
│ Protocol
▼
┌─────────────────────────┐
│ MikroTik RouterOS │
└─────────────────────────┘Architecture
Key Technical Highlights: #
- Modern EC-SRP5 Authentication: Fully compatible with RouterOS v6.43+ and v7.x using Curve25519 Weierstrass SRP authentication.
- On-Demand Lifecycle: Spawns isolated BTest server sessions dynamically and auto-terminates processes after test completion + safety buffers to conserve server CPU and RAM.
- Multi-Location Auto-Detection: Supports deploying multiple speed test servers across different data centers or POPs. MikroWizard automatically detects and selects the lowest latency server for each router.
- Granular Benchmarking: Measures TCP Downlink, TCP Uplink, UDP Downlink, UDP Uplink, Ping latency, and Jitter.
🌐 2. Network & System Requirements #
Before installing MikroSpeed, ensure the target server and network firewalls satisfy the following requirements:
Server Prerequisites #
- Operating System: Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+).
- Runtime: Docker installed and active (`docker.service`).
- Privileges: Root access (`sudo`).
Network Ports & Firewall Rules #
| Port | Protocol | Scope | Description |
|---|---|---|---|
| 2000 | TCP & UDP | Public / LAN | MikroTik BTest Engine Port: Must be open to all managed MikroTik routers. |
| 8200 | TCP | Private / Restricted | REST API Control Port: Handles authenticated commands from MikroWizard. |
💻 3. Installing MikroSpeed Locally (Same Server as MikroWizard) #
If you are running MikroSpeed on the same physical server or VM as MikroWizard, the automated installer will deploy the Docker container and automatically integrate it into `/opt/mikrowizard/server-conf.json`.
Step 1: Run the 1-Line Installer #
Open a terminal on your MikroWizard server and execute:
curl -fsSL https://raw.githubusercontent.com/MikroWizard/MikroSpeed/master/install.sh | sudo bashBashStep 2: Interactive Prompt Configuration #
During installation, accept the default values for local installation:
- BTest Server Listen Port [2000]: Press `Enter` (Default: `2000`).
- HTTP API Manager Port [8200]: Press `Enter` (Default: `8200`).
- HTTP API Listen Host IP [127.0.0.1]: Press `Enter` (Default: `127.0.0.1`).
--- MikroSpeed Configuration ---
BTest Server Listen Port [2000]:
HTTP API Manager Port [8200]:
🔒 SECURITY NOTICE - API Listen IP Address:
• 127.0.0.1 (Default) : Restricts REST API access to local loopback interface.
• 0.0.0.0 : Exposes REST API to all network interfaces (requires firewall protection).
HTTP API Listen Host IP [127.0.0.1]:
Pulling MikroSpeed Docker image (mikrowizard/speedtest-addon:latest) from Docker Hub...
Starting container...
Waiting for MikroSpeed Agent to initialize.... Online!
Integrating with local MikroWizard server config...
Reloading MikroWizard server...
---
Success! MikroSpeed is running.
API Token: e2f651f2d30a8afa6d657526c2db3b08270b536a436603e3a7567cfb5bdeaeee
BTest Port: 2000
API Host: 127.0.0.1
API Port: 8200Bash🌍 4. Installing MikroSpeed on Remote Servers & POP Locations #
To measure true network throughput across geographically distributed networks, ISPs and enterprises can deploy MikroSpeed agents on multiple remote servers (e.g., London POP, Frankfurt DC, Tokyo Edge).
Step 1: Run Installer on Remote Server #
SSH into the remote server (e.g., `192.168.1.150` or `london.speedtest.mydomain.com`) and run:
curl -fsSL https://raw.githubusercontent.com/MikroWizard/MikroSpeed/master/install.sh | sudo bashBashStep 2: Configure Public / LAN Binding #
When prompted for the IP address, specify `0.0.0.0` or the server’s public/LAN IP:
HTTP API Listen Host IP [127.0.0.1]: 0.0.0.0BashStep 3: Copy the Generated API Token #
Upon completion, copy the printed API Token:
==================================================
Success! MikroSpeed is running.
API Token: e2f651f2d30a8afa6d657526c2db3b08270b536a436603e3a7567cfb5bdeaeee
BTest Port: 2000
API Host: 0.0.0.0
API Port: 8200
==================================================Bash⚙️ 5. Tutorial: Adding Remote Speed Test Servers in MikroWizard Settings #
After deploying a remote MikroSpeed agent, add it to your MikroWizard cluster through the web interface.
Step-by-Step UI Setup: #
1. Log in to your MikroWizard Admin Dashboard.
2. Navigate to System Settings > Speed Test Servers tab.
3. Under Add Speed Test Server, fill in the following fields:
| Field Name | Description | Example Value |
|---|---|---|
| Server Name | Friendly descriptive label for location identification | London POP Server |
| Host/IP Address | IP address or FQDN of the remote MikroSpeed server | 192.168.1.150 or london.speed.mydomain.com |
| API Port | HTTP REST API management port | 8200 |
| BTest Port | MikroTik Bandwidth Test listening port | 2000 |
| Authentication Token (API Key) | The 64-character token generated during installation | e2f651f2d30a8afa6d657526c2db3b0827… |
4. Click the green + Add Server button to save.
📡 6. Multi-Server & Multi-Location Architecture #
MikroWizard supports adding an unlimited number of remote MikroSpeed servers across your network:
┌────────────────────────┐
│ MikroWizard Master │
└───────────┬────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ Auto-Latency Check │ Auto-Latency Check │ Auto-Latency Check
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ London POP Server │ │ Frankfurt DC Server │ │ Tokyo Edge Server │
│ (192.168.1.150:8200) │ │ (10.50.0.20:8200) │ │ (172.16.80.5:8200) │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘Multi-ServerAuto-Detection & Lowest Latency Routing #
When performing a bandwidth test on any router, MikroWizard offers an Auto-detect / Lowest Latency mode:
- MikroWizard measures the network latency (ping) between the target router and all configured speed test servers.
- It automatically selects the optimal server with the lowest round-trip latency to ensure accurate throughput benchmarking without routing bottlenecks.
📊 7. Running & Verifying Bandwidth Tests #
Once a local or remote MikroSpeed server is configured, bandwidth tests can be executed directly from any router’s management panel:
1. Go to Device Management > Devices and click on your target router (e.g. `CHR-Tower01`).
2. Select the Speed Test tab.
3. Select your Target Speed Test Server (or `Auto-detect / Lowest Latency`) and Test Duration.
4. Click ► Start Speed Test.
Benchmarking Metrics Delivered: #
| Metric | Sample Output | Description |
|---|---|---|
| Ping Latency | 390us | Round-trip ping latency between router and speed test server. |
| Jitter | 161us | Latency variation consistency measurement. |
| TCP Down / Up | 2.49 Gbps / 126 Mbps | Multi-connection TCP download and upload throughput. |
| UDP Down / Up | 233 Mbps / 1.22 Gbps | High-throughput UDP stream download and upload throughput. |
❓ 8. Troubleshooting & FAQ #
| Issue | Cause | Solution |
|---|---|---|
| API returns 401 Unauthorized | Incorrect API token in MikroWizard Settings | Run `cat /opt/mikrowizard/speedtest/addon_token` on the speed test server and update the Token field in Settings. |
| Connection Timed Out on Port 2000 | Firewall blocking TCP/UDP Port 2000 | Ensure firewall allows incoming connections: `sudo ufw allow 2000/tcp && sudo ufw allow 2000/udp`. |
| Remote server API not responding on Port 8200 | API host was set to 127.0.0.1 during install | Re-run installer on remote server and set HTTP API Listen Host IP to 0.0.0.0. Ensure port 8200 is open to MikroWizard IP. |
| MikroWizard core directory not found | Main MikroWizard missing on local server | Ensure main MikroWizard is installed at /opt/mikrowizard. For remote servers, choose remote installation mode. |