Nischay-Pro / wifi-heat-mapper

whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.
GNU General Public License v3.0
213 stars 21 forks source link

whm target_ip equals speedtest binding ip, causing Ookla/Libre speedtest issues with VPN (like WireGuard) #17

Open 6xthFNGR opened 1 month ago

6xthFNGR commented 1 month ago

Hey,

when using a VPN, the binding adress specified with "whm benchmark" causes issues: The config.json target_ip is used as binding adress for Ookla Speedtest (speedtest -f json -i "target_ip") and I assume for Librespeed (havent checked your .py scripts yet)

Issue is, when using a VPN like Wireguard, that causes issues so the speedtests only bind to the selected SSID and the interface IP of it (whm bootstrap, asks for the target_SSID and therefor sets target_IP accordingly) but is not routed threw tunnels for WAN/WWW as you can see by "ParseError("Unable to decode output from Librespeed CLI") from None"

I have not tried yet to manipulate the target_ip to try make it work.

Check the Log for Ookla Speedtest:

Loaded configuration file from: /home/XXX/work/2024-09-26-Py309_whm025_Test_Speedtest_config.json Target Interface: wlp2s0 and SSID: NAME Loading floor map Loaded floor map Ready for benchmarking. Running benchmark 80%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 4/5 [00:42<00:10, 10.61s/it]ERROR:root:Parse Error has occured. Traceback (most recent call last): File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest raise ParseError("Unable to decode output from Speedtest Ookla") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla WARNING:root:Rerunning Speedtest with retry count 1 ERROR:root:Parse Error has occured. Traceback (most recent call last): File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest raise ParseError("Unable to decode output from Speedtest Ookla") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla WARNING:root:Rerunning Speedtest with retry count 2 ERROR:root:Parse Error has occured. Traceback (most recent call last): File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest raise ParseError("Unable to decode output from Speedtest Ookla") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla Traceback (most recent call last): File "/home/XXX/PyVENV/311/bin/whm", line 8, in sys.exit(driver()) ^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/main.py", line 84, in driver start_gui(args.floor_map, args.iperf_server, args.config_file) File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func return func(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/gui.py", line 213, in start_gui results = run_benchmarks(benchmark_modes, benchmark_iterations, iperf_ip, iperf_port, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/gui.py", line 507, in run_benchmarks speedtest_download = run_speedtest(speedtest_mode, bind_address, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func return func(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 355, in run_speedtest run_speedtest(mode, bind_address, libre_speed_server_list, retry + 1) File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func return func(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 355, in run_speedtest run_speedtest(mode, bind_address, libre_speed_server_list, retry + 1) File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 352, in run_speedtest raise err File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest raise ParseError("Unable to decode output from Speedtest Ookla") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla

Check the Log for Librespeed:

Loaded configuration file from: /home/XXXX/TX5RX5_Test-003.json Target Interface: wlp2s0 and SSID: NAME Loading floor map Loaded floor map Ready for benchmarking. Running benchmark 80%|█████████████████████████████████████████████████████▌ | 4/5 [00:40<00:10, 10.21s/it]ERROR:root:Parse Error has occured. Traceback (most recent call last): > File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest raise ParseError("Unable to decode output from Librespeed CLI") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI WARNING:root:Rerunning Speedtest with retry count 1 ERROR:root:Parse Error has occured. Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest raise ParseError("Unable to decode output from Librespeed CLI") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI WARNING:root:Rerunning Speedtest with retry count 2 ERROR:root:Parse Error has occured. Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest raise ParseError("Unable to decode output from Librespeed CLI") from None wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI Traceback (most recent call last): File "/usr/local/bin/whm", line 33, in sys.exit(load_entry_point('whm==0.2.5+7.g95bc515', 'console_scripts', 'whm')()) File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/main.py", line 84, in driver File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/gui.py", line 213, in start_gui File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/gui.py", line 507, in run_benchmarks File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 355, in run_speedtest File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 355, in run_speedtest File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 352, in run_speedtest File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI 80%|█████████████████████████████████████████████████████▌ | 4/5 [02:11<00:32, 32.81s/it] USER:~/XXXX$ librespeed-cli Retrieving server list from https://librespeed.org/backend-servers/servers.php Selecting the fastest server based on ping Selected server: Amsterdam, Netherlands (Clouvider) [ams.speedtest.clouvider.net] Sponsored by: Clouvider @ https://www.clouvider.co.uk/ You're testing from: 194.127.199.108 - Unknown ISP Ping: 279.00 ms Jitter: 66.56 ms Download rate: 0.58 Mbps Upload rate: 1.95 Mbps

Without VPN, Ookla Speedtest does work within whm, Librespeed sadly not - but it works standalone, which is why there is a second ticket.

Thanks