{"id":1356,"date":"2024-01-13T21:30:58","date_gmt":"2024-01-13T20:30:58","guid":{"rendered":"https:\/\/chochol.io\/smart-home\/how-to-make-an-internet-speed-test-on-a-raspberry-pi\/"},"modified":"2025-08-23T19:53:12","modified_gmt":"2025-08-23T17:53:12","slug":"how-to-make-an-internet-speed-test-on-a-raspberry-pi","status":"publish","type":"post","link":"https:\/\/chochol.io\/en\/computer-networking\/how-to-make-an-internet-speed-test-on-a-raspberry-pi\/","title":{"rendered":"How to make an internet speed test on a Raspberry Pi"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1356\" class=\"elementor elementor-1356 elementor-1326\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e088e1b e-flex e-con-boxed e-con e-parent\" data-id=\"e088e1b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ea9ab3 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"8ea9ab3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\r\n\t\t\t\t\t\t<div class=\"elementor-toc__header-title\">\r\n\t\t\t\tTable of contents\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__8ea9ab3\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\r\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__8ea9ab3\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<div id=\"elementor-toc__8ea9ab3\" class=\"elementor-toc__body\">\r\n\t\t\t<div class=\"elementor-toc__spinner-container\">\r\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-253e13b elementor-widget elementor-widget-text-editor\" data-id=\"253e13b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Hello!<\/h2><p>In today\u2019s world, where high-speed Internet access is crucial, monitoring and optimizing network speeds is becoming increasingly important. In this tutorial, we\u2019ll take a look at how to use the <strong>speedtest-cli<\/strong> tool on the popular Raspberry Pi to conduct an effective test of Internet access speed.<\/p><p>Learn how to quickly and easily install and configure this tool to get valuable information on the performance of your local network. Discover how to track download and upload speeds, which can be useful for monitoring your Internet connection.<\/p><h2>What is speedtest-cli?<\/h2><p><a href=\"https:\/\/github.com\/sivel\/speedtest-cli\" target=\"_blank\" rel=\"noopener\">Speedtest-cli<\/a> is a command line interface (CLI) tool for conducting Internet speed tests without using a browser GUI. It was created by <a href=\"https:\/\/github.com\/sivel\" target=\"_blank\" rel=\"noopener\">Matt Martz<\/a>, who is a software developer and an active member of the open source community. It is a simple, easy-to-use application that allows users to quickly and conveniently check the download speed, upload speed and latency of their Internet connection.<\/p><p>The <strong>speedtest-cli<\/strong> tool uses Speedtest.net, a popular platform for measuring Internet speeds. During the test, the tool establishes a connection to the nearest Speedtest.net server, uploads and downloads data, and then presents results such as download speed (download), upload speed (upload) and latency (ping).<\/p><h2>Preparation<\/h2><p>Before we start checking the speed of the Internet, it is a good idea to properly prepare our device \u2013 I will use <strong>Raspberry Pi<\/strong> version 4B for the tutorial. We will issue commands to our device via <strong>SSH<\/strong>.<\/p><ul><li>Currently, you can already use the commercially available <strong>Raspberry Pi 5<\/strong>, however, its availability is very low. I recommend using <a href=\"https:\/\/rpilocator.com\/\" target=\"_blank\" rel=\"noopener\">rpilocator.com<\/a> to see where you can currently get a reasonably priced device;<\/li><li>For Microsoft Windows operating system I recommend <a href=\"https:\/\/www.putty.org\/\" target=\"_blank\" rel=\"noopener\">PuTTY<\/a>, while for Apple macOS operating systems I recommend <a href=\"https:\/\/termius.com\/\" target=\"_blank\" rel=\"noopener\">Termius<\/a>.<\/li><\/ul><h2>Step 1 \u2013 Update package list and upload updates<\/h2><ul><li>Launch PuTTY (Windows OS) or Termius (macOS), then connect to your device,<\/li><li>Enter the following command to update the package list and install available updates:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a52b847 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"a52b847\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-a52b847\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>sudo apt-get update && sudo apt-get upgrade -y<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_a52b847 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_a52b847();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_a52b847 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3dc47aa elementor-widget elementor-widget-text-editor\" data-id=\"3dc47aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Step 2 \u2013 Install the speedtest-cli package<\/h2><ul><li>Enter the following command to update the speed measurement package:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ed28a8 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"0ed28a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-0ed28a8\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>sudo apt-get install speedtest-cli -y<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_0ed28a8 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_0ed28a8();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_0ed28a8 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc70cd7 elementor-widget elementor-widget-text-editor\" data-id=\"bc70cd7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Wait a short while until the package installation process is complete. Once successfully installed, you can move on to the next command you will execute on the command line.<\/li><\/ul><h2>How to measure internet speed with speedtest-cli on Raspberry Pi<\/h2><ul><li>To check your internet speed, use the following command to launch the application:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ac5d6e elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"5ac5d6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-5ac5d6e\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>speedtest-cli<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_5ac5d6e = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_5ac5d6e();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_5ac5d6e );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5990658 elementor-widget elementor-widget-text-editor\" data-id=\"5990658\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>After entering the above command, you will receive a report of the measurement of the speed of your Internet connection in a short time. Below you will find an example of the measurement result:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a027a2 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"9a027a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-9a027a2\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>Retrieving speedtest.net configuration...\nTesting from YOUR ISP NAME (XXX.XXX.XXX.XXX)...\nRetrieving speedtest.net server list...\nSelecting best server based on ping...\nHosted by TOM MEDIA (Dabrowa G\u00f3rnicza) [248.38 km]: 9.454 ms\nTesting download speed................................................................................\nDownload: 527.30 Mbit\/s\nTesting upload speed......................................................................................................\nUpload: 165.59 Mbit\/s<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_9a027a2 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_9a027a2();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_9a027a2 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38e22ba elementor-widget elementor-widget-text-editor\" data-id=\"38e22ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In the above result, you can see the results of internet speed, taking into account both downloading and uploading data. If you prefer to display the output in bytes instead of bits, use the following command:<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29c4219 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"29c4219\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-29c4219\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>speedtest-cli --bytes<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_29c4219 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_29c4219();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_29c4219 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2184f2d elementor-widget elementor-widget-text-editor\" data-id=\"2184f2d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>After entering the above command, you will receive a report of the measurement of the speed of your Internet connection in a short time. Below you will find an example of the measurement result:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5f24ab elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"d5f24ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-d5f24ab\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash command-line copy-to-clipboard\"data-previewers=\"\"data-user=\"\"data-host=\"\"data-output=\"\"><code>Retrieving speedtest.net configuration...\nTesting from YOUR ISP NAME (XXX.XXX.XXX.XXX)...\nRetrieving speedtest.net server list...\nSelecting best server based on ping...\nHosted by KSU Provector (Gorzow Wielkopolski) [393.08 km]: 10.081 ms\nTesting download speed................................................................................\nDownload: 66.01 Mbyte\/s\nTesting upload speed......................................................................................................\nUpload: 20.38 Mbyte\/s<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_d5f24ab = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_d5f24ab();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_d5f24ab );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-713c10a elementor-widget elementor-widget-text-editor\" data-id=\"713c10a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Read also:<\/h2><ul><li><a href=\"https:\/\/chochol.io\/en\/smart-home\/home-assistant-installing-mirror-lighting-on-esphome\/\">Home Assistant: Install mirror lighting on ESPHome<\/a> \/ Set up simple mirror lighting with ESPHome in Home Assistant. Discover simple integration and control light with ease.<\/li><li><a href=\"https:\/\/chochol.io\/en\/smart-home\/printhello-world\/\">print(\u201cHelllo World\u201d)<\/a> \/ Welcome to my blog, where \u2018Hello World\u2019 is the symbolic start. Discover with me the fascinating world of coding and news from the world of technology.<\/li><li><a href=\"https:\/\/chochol.io\/en\/hardware\/synology-free-ports-80-443-for-nginx-proxy-manager\/\">Synology: Unblock web ports for Nginx Proxy Manager<\/a> \/ Unblock ports on Synology and configure Nginx Proxy Manager. Przewodnik u\u0142atwi instalacj\u0119 serwera proxy, zapewniaj\u0105c proste zarz\u0105dzanie serwerem.<\/li><li><a href=\"https:\/\/chochol.io\/en\/hardware\/ads-b-receiver-installation-and-configuration-on-raspberry-pi\/\">ADS-B: Receiver Installation and Configuration on Raspberry Pi<\/a> \/ Discover the secrets of installing and configuring your own ADS-B antenna on Raspberry Pi. Develop skills and track aircraft in real time.<\/li><li><a href=\"https:\/\/chochol.io\/en\/software\/traccar-docker-installation-guide-on-synology\/\">Traccar: A guide to installing on Synology with Docker<\/a> \/ Step-by-step guide: Installing Traccar on Synology using Docker. Effective vehicle tracking on your own server.<\/li><li><a href=\"https:\/\/chochol.io\/en\/software\/traccar-configuring-gps-communication-in-docker\/\">Traccar: Configuring GPS communication in Docker<\/a> \/ Step by step how to enable Traccar GPS communication. Using Docker Compose, open ports for managing and receiving GPS data.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Check the internet speed on the Raspberry Pi using speedtest-cli. Discover how to set up and use the speed tool.<\/p>\n","protected":false},"author":1,"featured_media":1330,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[117],"class_list":["post-1356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer-networking","tag-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/1356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/comments?post=1356"}],"version-history":[{"count":0,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/1356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media\/1330"}],"wp:attachment":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media?parent=1356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/categories?post=1356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/tags?post=1356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}