خوش آمدید - امروز : شنبه ۸ اردیبهشت ۱۴۰۳
خانه » آموزش کانفیگ سرور » آموزش تست سرعت اینترنت در لینوکس Ubuntu – Debian

آموزش تست سرعت اینترنت در لینوکس Ubuntu – Debian

دوستان زیادی درخواست آموزش تست سرعت اینترنت در لینوکس را خواسته بودند که در این پست خدمتتون یک آموزش کامل تقدیم خواهم کرد. در این پست با استفاده از speedtest-cli سرعت اینترنت را در یک کامپیوتر یا سرور لینوکسی تست میکنیم و هم سرعت آپلود و هم سرعت دانلود را بررسی خواهیم کرد.

سرعت اتصال به اینترنت چیزی است که ما همیشه در خانه و دفتر ما بررسی می کنیم. رایج ترین روش که ما استفاده می کنیم این است که با بازدید از وب سایت آزمون سرعت مانند speedtest.net. در آن سایت یک برنامه جاوا اسکریپت در مرورگر وب بارگذاری می شود که بهترین سرور (نزدیک) سرور را بر اساس زمان پینگ انتخاب می کند و سپس نتایج تست سرعت برای آن سرور نمایش داده می شود. Speedtest.net همچنین از فلش پلیر برای تولید گرافیکی استفاده می کند.

مشکل با استفاده از این تست های اینترنتی مبتنی بر وب این است که شما اجازه ندارید تست سرعت را در فواصل منظم برنامه ریزی کنید، مثلا به عنوان یک cronjob و شما می توانید آنها را در سرور های بی سر و صدا استفاده کنید. یک برنامه کاربردی که میتواند این مشکل را حل کند، “speedtest-cli” است. این برنامه به شما اجازه می دهد سرعت اینترنت خود را با استفاده از خط فرمان چک کنید.

Speedtest-cli یک اسکریپت نوشته شده در زبان برنامه نویسی پایتون است که سرعت اینترنت را دو طرفه اندازه گیری می کند. این نرم افزار به شما اجازه می دهد تا سرعت اینترنت خود را از فاصله در کیلومتر بررسی کنید، آن را می توانید در برابر سرورهای خاص آزمایش کنید و همچنین URL را فراهم می کند تا بتوانید نتیجه خود را در اینترنت به اشتراک بگذارید.

چطور speedtest-cli را نصب نماییم؟

برای نصب برنامه speedtest-cli، باید Python 2.4-3.4 یا یک نسخه به روز شده در سیستم خود نصب کنید.

شما می توانید ابزار speedtest-cli را با استفاده از دو روش نصب کنید. روش اول شامل استفاده از مدیر بسته بسته python-pip می باشد، روش دوم این است که اسکریپت پایتون را به صورت دستی دانلود کنید، آن را اجرایی کنید و سپس برنامه را اجرا کنید.

روش 1: نصب speedtest-cli با استفاده ازpython-pip

گام بعدی باید به عنوان کاربر ریشه اجرا شود، زیرا من نمی خواهم sudo را برای هر فرمان prepend کنم، ابتدا دستور زیر را در اوبونتو اجرا کنید تا کاربر ریشه شود منظور همان کاربر root میباشد

sudo su

1. اولین قدم این است که لیست بسته های شما از تمام مخازن اوبونتو و PPA را با اجرای دستور زیر به روز نگه دارید:

apt-get update

2. گام بعدی نصب پکیج مدیریت پیپ در سیستم شما است. همانطور که می بینید، فرمان بسیاری از وابستگی ها را نیز نصب می کند.

apt-get install python-pip

root@server1:/# apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
 libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev
 python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six
 python-wheel python-xdg python2.7-dev
Suggested packages:
 python-crypto-doc python-cryptography-doc python-cryptography-vectors python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin
 gir1.2-gnomekeyring-1.0 python-fs python-gdata python-keyczar python-secretstorage-doc python-setuptools-doc
The following NEW packages will be installed:
 libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev
 python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six
 python-wheel python-xdg python2.7-dev
0 upgraded, 27 newly installed, 0 to remove and 60 not upgraded.
Need to get 32.1 MB of archives.
After this operation, 53.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

دکمه Y را برای ادامه فشار دهید

3. پس از نصب بسته، شما می توانید برنامه را با استفاده از این دستور pip نصب کنید:

pip install speedtest-cli

Collecting speedtest-cli
 Downloading https://files.pythonhosted.org/packages/61/8b/58d1de9a7fff3e91c5ab956ab4ba72b49f42d9f73d5f3e248c740dfcc816/speedtest_cli-2.1.1-py2.py3-none-any.whl
Installing collected packages: speedtest-cli
Successfully installed speedtest-cli-2.1.1

4. اگر می خواهید برنامه آینده speedtest را در آینده ارتقا دهید، می توانید از این دستور استفاده کنید:

pip install speedtest-cli –-upgrade

Requirement already up-to-date: speedtest-cli in /usr/local/lib/python2.7/dist-packages
Cleaning up...

روش 2: نصب آخرین نسخه از اسکریپت speedtest-cli از GitHub به صورت دستی

1. اول باید اسکریپت پایتون را از GitHub با استفاده از فرمان دانلود کنید

cd /tmpwget https://github.com/sivel/speedtest-cli/archive/master.zip

--2019-04-25 19:24:47-- https://github.com/sivel/speedtest-cli/archive/master.zip
Resolving github.com (github.com)... 140.82.118.4, 140.82.118.3
Connecting to github.com (github.com)|140.82.118.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/sivel/speedtest-cli/zip/master [following]
--2019-04-25 19:24:47-- https://codeload.github.com/sivel/speedtest-cli/zip/master
Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120
Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’

master.zip [ <=> ] 27.55K 103KB/s in 0.3s

2019-04-25 19:24:48 (103 KB/s) - ‘master.zip’ saved [28215]

2. گام دوم این است که پرونده ای که شما دریافت کرده اید (master.zip) را باز کنید و آن را با استفاده از دستور unzip از حالت فشرده خارج کنید:

unzip master.zip

Archive: master.zip
681cdf20a5fe774ba3aefedd0cd88cbff5384439
 creating: speedtest-cli-master/
 inflating: speedtest-cli-master/.gitignore
 inflating: speedtest-cli-master/.travis.yml
 inflating: speedtest-cli-master/CONTRIBUTING.md
 inflating: speedtest-cli-master/LICENSE
 inflating: speedtest-cli-master/MANIFEST.in
 inflating: speedtest-cli-master/README.rst
 extracting: speedtest-cli-master/setup.cfg
 inflating: speedtest-cli-master/setup.py
 inflating: speedtest-cli-master/speedtest-cli.1
 inflating: speedtest-cli-master/speedtest.py
 creating: speedtest-cli-master/tests/
 creating: speedtest-cli-master/tests/scripts/
 inflating: speedtest-cli-master/tests/scripts/source.py
 inflating: speedtest-cli-master/tox.ini

3. هنگامی که فایل را استخراج و از حالت فشرده خارج کردید، اسکریپت استخراج شده را اجرایی کنید، با رفتن به دایرکتوری استخراج شده و با استفاده از دستور chown بصورت زیر فایل قابلیت اجرایی پیدا میکند:


cd speedtest-cli-master/



chmod 755 speedtest.py

4. برای جلوگیری از تایپ کردن مسیر کامل در هر زمان، فایل اجرایی را به / usr / local / bin با استفاده از دستور زیر منتقل کنید:

sudo mv speedtest.py /usr/local/bin/speedtest-cli

چگونه سرعت اتصال به اینترنت با speedtest-cli را آزمایش کنیم؟

دستور  speedtest-cli را اجرا کنید تا دانلود و سرعت اتصال اینترنت شما اندازی گیری و تست شود

speedtest-cli

Testing download speed........................................
Download: 916.39 Mbit/s
Testing upload speed..................................................
Upload: 489.57 Mbit/s

اگر می خواهید نتیجه سرعت را بجای مگا بیت در حالت مگا بایت بررسی کنید از این دستور استفاده کنید:

speedtest-cli --bytes


Testing download speed........................................
Download: 114.15 Mbyte/s
Testing upload speed..................................................
Upload: 49.61 Mbyte/s

اگر می خواهید نتیجه سرعت را با دوستان خود به اشتراک بگذارید، می توانید تصویر نتیجه را با URL ارائه شده پس از نتیجه دانلود کنید.

speedtest-cli --share

Retrieving speedtest.net configuration...
Testing from Hetzner Online GmbH (..........)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by avrx (Limburg an der Lahn) [140.88 km]: 14.379 ms
Testing download speed................................................................................
Download: 309.68 Mbit/s
Testing upload speed................................................................................................
Upload: 316.33 Mbit/s
Share results: http://www.speedtest.net/result/xxxxxxxxxxx.png

در زیر تصویر تست سرعت من از آزمون بالا است.

شما همچنین می توانید لیست سرورها تست  را بر اساس فاصله بر اساس کیلومتر با استفاده از دستور زیر مشاهده کنید:

speedtest-cli --list

2628) Telstra (Adelaide, Australia) [17098.98 km]
4051) Vodafone Hutchison Australia (AE) (Adelaide, Australia) [17098.98 km]
...........................................................................
3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km]
1931) IX Australia (Perth, Australia) [18700.26 km]

با جستجو در لیست از لحاظ فاصله، شما ممکن است یک لیست بزرگ از سرور ها ایجاد کنید. اگر می خواهید نتیجه را برای سرورهای یک منطقه خاص بررسی کنید، می توانید آن را با استفاده از دستور grep بدست بیاورید در این مثال کشور استرالیا مد نظر میباشد:

speedtest-cli --list | grep –i Australia

2604) Telstra (Brisbane, Australia) [15501.92 km]
1594) 'Yes' Optus (Brisbane, Australia) [15501.92 km]
...............................................................................................
3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km]
1931) IX Australia (Perth, Australia) [18700.26 km]

ایجاد یک لاگ مربوط سرعت اینترنت با استفاده از  speedtest-cli

Speedtest-cli می تواند به عنوان یک cronjob اجرا شود تا بتواند یک ورودی تست سرعت اینترنت داشته باشد. crontab را با این دستور باز کنید:

crontab -e

و این خط را اضافه کنید (فرض میکنم speedtest_cli.py در / usr / local / bin نصب شده است) به crontab:

30 00 * * *  /usr/local/bin/speedtest-cli >> /tmp/speedlog.txt

تغییرات را ذخیره کنید و از ویرایشگر crontab خارج شوید. این تست سرعت در هر روز 0:30 انجام می شود و نتیجه را به فایل /tmp/speedlog.txt اضافه می کند.

امیدوارم این آموزش مورد استفاده شما عزیزان قرار گرفته باشد

با تشکر عیسی محمدزاده

کارشناس مدیریت سرور و هاستینگ و امنیت شبکه

امتیاز 5.00 ( 4 رای )
اشتراک گذاری مطلب

کلیه حقوق مادی و معنوی مطالب و مقالات متعلق به وب سایت انجین ایکس وب میباشد - طراحی شده توسط پارس تمز