wireguard-config-benchmark is a python script that benchmarks the download speeds for the connections defined in one or more wireguard config files

Overview

Setup

  1. Install Wireguard, along with any additional dependencies
  2. Install Puthon 3.x
  3. Run the following command to install all python package script dependencies
    pip install -r requirements.txt
  4. Generate wireguard config files from your VPN provider

How to run the benchmark script

  1. Open benchmark_wireguard_vpn_servers.py and edit the VPN_CONFIG_DIR variable defined at the top to point to the directory containing all wireguard config files.

  2. Run the script:

    • Windows note: admin privelages are required in order to make calls to the wireguard client from within the script
      python benchmark_wireguard_vpn_servers.py

    The script will pipe all stdout output to a file named benchmark_stdout.txt

    When the script has finished benchmarking all wireguard configs, it will write the results to a file named benchmark_results.json. This file will be sorted by download speed in descending order and will include information about each config tested (config name, server information, and speedtest information).

Example benchmark_results.json output file

", "ip": " ", "city": " ", "region": " ", "country": " ", "coordinate": [ -123.45, 67.890 ], "speedtest_results": [ { "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12345", "upload_speed": 0.0, "download_speed": 500.00, "ping": 10.000 }, { "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12346", "upload_speed": 0.0, "download_speed": 400.00, "ping": 10.000 }, { "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12347", "upload_speed": 0.0, "download_speed": 300.00, "ping": 10.000 }, { "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12348", "upload_speed": 0.0, "download_speed": 200.00, "ping": 10.000 }, { "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12349", "upload_speed": 0.0, "download_speed": 100.00, "ping": 10.000 } ] }, { "name": " ", "ip": " ", "city": " ", "region": " ", "country": " ", "coordinate": [ -123.45, 67.890 ], "speedtest_results": [ { "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12345", "upload_speed": 0.0, "download_speed": 125.00, "ping": 10.000 }, { "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12346", "upload_speed": 0.0, "download_speed": 120.00, "ping": 10.000 }, { "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12347", "upload_speed": 0.0, "download_speed": 115.00, "ping": 10.000 }, { "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12348", "upload_speed": 0.0, "download_speed": 110.00, "ping": 10.000 }, { "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12349", "upload_speed": 0.0, "download_speed": 105.00, "ping": 10.000 } ] } ] ">
[
    {
        "name": "
            
             "
            ,
        "ip": "
            
             "
            ,
        "city": "
            
             "
            ,
        "region": "
            
             "
            ,
        "country": "
            
             "
            ,
        "coordinate": [
            -123.45,
            67.890
        ],
        "speedtest_results": [
            {
                "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12345",
                "upload_speed": 0.0,
                "download_speed": 500.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12346",
                "upload_speed": 0.0,
                "download_speed": 400.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12347",
                "upload_speed": 0.0,
                "download_speed": 300.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12348",
                "upload_speed": 0.0,
                "download_speed": 200.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12349",
                "upload_speed": 0.0,
                "download_speed": 100.00,
                "ping": 10.000
            }
        ]
    },
    {
        "name": "
            
             "
            ,
        "ip": "
            
             "
            ,
        "city": "
            
             "
            ,
        "region": "
            
             "
            ,
        "country": "
            
             "
            ,
        "coordinate": [
            -123.45,
            67.890
        ],
        "speedtest_results": [
            {
                "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12345",
                "upload_speed": 0.0,
                "download_speed": 125.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12346",
                "upload_speed": 0.0,
                "download_speed": 120.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12347",
                "upload_speed": 0.0,
                "download_speed": 115.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12348",
                "upload_speed": 0.0,
                "download_speed": 110.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12349",
                "upload_speed": 0.0,
                "download_speed": 105.00,
                "ping": 10.000
            }
        ]
    }
]
GNS3 Graphical Network Simulator

GNS3-gui GNS3 GUI repository.

GNS3 1.7k Dec 29, 2022
NSX-T infrastructure as code - SDDC deployment

Deploy NSX-T Infrastructure - Simple Topology by Nicolas MICHEL @vpackets / LinkedIn Introduction The purpose of this entire repository is to automate

21 Nov 28, 2022
Octodns-cloudflare - Cloudflare DNS provider for octoDNS

CloudflareProvider provider for octoDNS An octoDNS provider that targets Cloudfl

octoDNS 6 May 28, 2022
A simple tool to get information about IP

IP Info Tool Just a simple tool to get IP's information, it uses requests module to gather information about IP, if you dont have much knowledge about

0 Dec 01, 2021
This is a top level socket library, making servers and clients EASY!

quick-net Sockets don't have to be a pain That's the motto this library was built with, and that's exactly what we made! This is a top-level socket li

Nate the great 15 Dec 17, 2021
An opensource library to use SNMP get/bulk/set/walk in Python

SNMP-UTILS An opensource library to use SNMP get/bulk/set/walk in Python Features Work with OIDS json list [Find Here](#OIDS List) GET command SET com

Alexandre Gossard 3 Aug 03, 2022
A Scapy implementation of SMS-SUBMIT and (U)SIM Application Toolkit command packets.

A Scapy implementation of SMS-SUBMIT and (U)SIM Application Toolkit command packets.

mnemonic 83 Dec 11, 2022
Dark Utilities - Cloudflare Uam Bypass

Dark Utilities - Cloudflare Uam Bypass

Inplex-sys 26 Dec 14, 2022
A simple and lightweight server that allows clients to connect and launch a shell remotely through a browser.

carrotsh A simple and lightweight server that allows clients to connect and launch a shell remotely through a browser. Uses xterm.js for the frontend

V9 31 Dec 27, 2022
wg-exporter is a simple yet effective Prometheus exporter for Wireguard

wg-exporter wg-exporter is a simple yet effective Prometheus exporter for Wireguard. What are the collected metrics ? General: wg_connected_peers: num

men1n2 3 May 20, 2022
Socket Based Backdoor and Listener

The Project is mainly based on Sockets , File Handling and subprocess library for Creating backdoors For Hacking into one's Computer (Any OS-Platform Service) and listening on your computer and waiti

Shivansh Mehta 3 May 31, 2021
A simple python application for generating a WiFi QR code for ease of connection

A simple python application for generating a WiFi QR code Initialize the class by providing QR code values WiFi_QR_Code(self, error_correction: int =

Ivan 2 Aug 01, 2022
Converts Cisco formatted MAC Addresses to PC formatted MAC Addresses

Cisco-MAC-to-PC-MAC Converts a file with a list of Cisco formatted MAC Addresses to PC formatted MAC Addresses... Ex: abcd.efgh.ijkl to AB:CD:EF:GH:I

Stew Alexander 0 Jan 04, 2022
A transport agnostic sync/async RPC library that focuses on exposing services with a well-defined API using popular protocols.

WARNING: This is from spyne's development branch. This version is not released yet! Latest stable release can be found in the 2_13 branch. If you like

1.1k Dec 23, 2022
It's a little project for change MAC address, for ethical hacking purposes

MACChangerPy It's a small project for MAC address change, for ethical hacking purposes, don't use it for bad purposes, any infringement will be your r

Erick Adriano Nunes da Silva 1 Mar 11, 2022
Very simple and tiny file sharing service written in python

Simple File sharing tool Sharing client usage (You will need to use python3 for linux) main.py --send -f file/path Optionnal flags : pwd : set a passw

2 Jul 26, 2022
netpy - more than implementation of netcat 🐍🔥

netpy - more than implementation of netcat 🐍🔥

Mahmoud S. ElGammal 1 Jan 26, 2022
QUIC and HTTP/3 implementation in Python

aioquic What is aioquic? aioquic is a library for the QUIC network protocol in Python. It features a minimal TLS 1.3 implementation, a QUIC stack and

1.2k Dec 29, 2022
syncio: asyncio, without await

syncio: asyncio, without await asyncio can look very intimidating to newcomers, because of the async/await syntax. Even experienced programmers can ge

David Brochart 10 Nov 21, 2022
Modern Denial-of-service ToolKit for python

💣 Impulse Modern Denial-of-service ToolKit 💻 Main window 📡 Methods: Method Target Description SMS PHONE Sends a massive amount of SMS messages and

1 Nov 29, 2021