Kiểm tra tốc độ Internet bằng speedtest-cli trên Debian và Ubuntu

theanh

Administrator
Nhân viên
Tốc độ kết nối Internet là thứ chúng ta luôn kiểm tra tại nhà và văn phòng. Phương pháp phổ biến nhất mà chúng ta sử dụng là truy cập trang web kiểm tra tốc độ như speedtest.net. Trên trang web đó, một ứng dụng javascript được tải trong trình duyệt web, ứng dụng này sẽ chọn máy chủ tốt nhất (gần đó) dựa trên thời gian ping và sau đó kết quả kiểm tra tốc độ cho máy chủ đó sẽ được hiển thị. Speedtest.net cũng sử dụng trình phát flash để tạo kết quả dưới dạng đồ họa.

Vấn đề khi sử dụng các bài kiểm tra tốc độ dựa trên web này là nó không cho phép bạn lên lịch kiểm tra tốc độ theo các khoảng thời gian đều đặn, ví dụ như acronjob và bạn không thể sử dụng chúng trên các máy chủ không có giao diện. Một ứng dụng có thể giải quyết vấn đề này là "speedtest-cli". Ứng dụng này cho phép bạn kiểm tra tốc độ internet của mình bằng dòng lệnh.

Speedtest-cli là gì?​

Speedtest-cli là một tập lệnh được viết bằng ngôn ngữ lập trình Python để đo tốc độ internet theo hai chiều. Ứng dụng này cho phép bạn kiểm tra tốc độ internet theo khoảng cách tính bằng km, có thể kiểm tra trên các máy chủ cụ thể và cũng cung cấp URL để bạn có thể chia sẻ kết quả của mình trên internet.

Làm thế nào để cài đặt speedtest-clion Linux?​

Để cài đặt ứng dụng speedtest-cli, bạn phải cài đặt Python 2.4-3.4 hoặc phiên bản nâng cấp trong hệ thống của mình.

Bạn có thể cài đặt công cụ speedtest-cli bằng hai phương pháp. Phương pháp đầu tiên bao gồm việc sử dụng trình quản lý gói python-pip, phương pháp thứ hai là tải xuống thủ công tập lệnh Python, thực thi rồi chạy ứng dụng.

Phương pháp 1: Cài đặt speedtest-cli bằng python-pip​

Bước tiếp theo phải được chạy với tư cách là người dùng root, vì tôi không muốn thêm sudo vào trước mỗi lệnh, vui lòng chạy lệnh sau trên Ubuntu trước để trở thành người dùng root:
Mã:
sudo su
1. Bước đầu tiên là đảm bảo danh sách các gói từ tất cả các kho lưu trữ Ubuntu và PPA được cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update
Đầu ra mẫu:



2. Bước tiếp theo là cài đặt trình quản lý gói pip trên hệ thống của bạn. Như bạn có thể thấy, lệnh này cũng sẽ cài đặt nhiều gói phụ thuộc.
Mã:
apt-get install python-pip
Mã:
root@server1:/# apt-get install python-pip
Đang đọc danh sách gói... Xong
Đang xây dựng cây phụ thuộc
Đang đọc thông tin trạng thái... Xong
Các gói bổ sung sau sẽ được cài đặt:
 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
Các gói được đề xuất:
 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
Các gói MỚI sau đây sẽ được cài đặt:
 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 đã nâng cấp, 27 mới cài đặt, 0 cần xóa và 60 chưa nâng cấp.
Cần lấy 32,1 MB tệp lưu trữ.
Sau thao tác này, sẽ sử dụng thêm 53,6 MB dung lượng đĩa.
Bạn có muốn tiếp tục không? [Y/n] y
Nhấn Y để tiếp tục

Đầu ra mẫu:



3. Sau khi cài đặt gói, bạn có thể cài đặt ứng dụng bằng lệnh pip này:
Mã:
pip install speedtest-cli
Mã:
Đang thu thập speedtest-cli
Đang tải xuống https://files.pythonhosted.org/packages/61/8b/58d1de9a7fff3e91c5ab956ab4ba72b49f42d9f73d5f3e248c740dfcc816/speedtest_cli-2.1.1-py2.py3-none-any.whl
Đang cài đặt các gói đã thu thập: speedtest-cli
Đã cài đặt thành công speedtest-cli-2.1.1
4. Nếu bạn muốn nâng cấp ứng dụng speedtest-cli trong tương lai, bạn có thể sử dụng lệnh này:
Mã:
pip install speedtest-cli –-upgrade
Mã:
Yêu cầu đã được cập nhật: speedtest-cli trong /usr/local/lib/python2.7/dist-packages
Đang dọn dẹp...

Phương pháp 2: Cài đặt speedtest-climanually mới nhất từ GitHub​

1. Trước tiên, bạn phải tải xuống tập lệnh python từ GitHub bằng lệnh
Mã:
cd /tmp
wget https://github.com/sivel/speedtest-cli/archive/master.zip
Mã:
--2019-04-25 19:24:47-- https://github.com/sivel/speedtest-cli/archive/master.zip
Đang giải quyết lỗi github.com (github.com)... 140.82.118.4, 140.82.118.3
Đang kết nối tới github.com (github.com)|140.82.118.4|:443... đã kết nối.
Đã gửi yêu cầu HTTP, đang chờ phản hồi... Đã tìm thấy 302
Vị trí: https://codeload.github.com/sivel/speedtest-cli/zip/master [đang theo dõi]
--2019-04-25 19:24:47-- https://codeload.github.com/sivel/speedtest-cli/zip/master
Đang giải quyết codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120
Đang kết nối tới codeload.github.com (codeload.github.com)|192.30.253.121|:443... đã kết nối.
Đã gửi yêu cầu HTTP, đang chờ phản hồi... 200 OK
Độ dài: không xác định [application/zip]
Đang lưu vào: ‘master.zip’

master.zip [  ] 27,55K 103KB/giây trong 0,3 giây

2019-04-25 19:24:48 (103 KB/giây) - ‘master.zip’ đã được lưu [28215]
2. Bước thứ hai là giải nén tệp bạn đã tải xuống (master.zip) và giải nén nó bằng lệnh unzip:
Mã:
giải nén master.zip
Mã:
Lưu trữ: master.zip
681cdf20a5fe774ba3aefedd0cd88cbff5384439
 tạo: speedtest-cli-master/
 thổi phồng: speedtest-cli-master/.gitignore
 thổi phồng: speedtest-cli-master/.travis.yml
 thổi phồng: speedtest-cli-master/CONTRIBUTING.md
 thổi phồng: speedtest-cli-master/LICENSE
 thổi phồng: speedtest-cli-master/MANIFEST.in
 thổi phồng: speedtest-cli-master/README.rst
 giải nén: speedtest-cli-master/setup.cfg
 thổi phồng: 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. Khi bạn đã giải nén tệp, hãy thực thi tập lệnh đã giải nén bằng cách vào thư mục đã giải nén và sử dụng lệnh chown.
Mã:
cd speedtest-cli-master/
Mã:
chmod755 speedtest.py
4. Để tránh phải nhập đường dẫn đầy đủ mỗi lần, hãy di chuyển tệp thực thi đến /usr/local/bin bằng cách sử dụng lệnh sau:
Mã:
sudo mv speedtest.py /usr/local/bin/speedtest-cli

Làm thế nào để kiểm tra tốc độ kết nối internet bằng speedtest-cli?​

Chạy lệnh speedtest-cli để kiểm tra tốc độ tải xuống và tải lên của kết nối internet của bạn mà không có bất kỳ đối số nào:
Mã:
speedtest-cli
Mã:
Kiểm tra tốc độ tải xuống........................................
Tải xuống: 916,39 Mbit/giây
Kiểm tra tốc độ tải lên..................................................
Tải lên: 489,57 Mbit/giây
Nếu bạn muốn kiểm tra kết quả tốc độ theo byte thay vì bit, hãy sử dụng lệnh này:
Mã:
speedtest-cli --bytes
Mã:
Kiểm tra tốc độ tải xuống................................................
Tải xuống: 114,15 Mbyte/giây
Kiểm tra tốc độ tải lên................................................
Tải lên: 49,61 Mbyte/giây
Nếu bạn muốn chia sẻ kết quả tốc độ với bạn bè, thì bạn có thể tải xuống hình ảnh kết quả bằng URL được cung cấp sau kết quả.
Mã:
speedtest-cli --share
Mã:
Đang truy xuất cấu hình speedtest.net...
Đang kiểm tra từ Hetzner Online GmbH (..........)...
Đang truy xuất danh sách máy chủ speedtest.net...
Đang chọn máy chủ tốt nhất dựa trên ping...
Được lưu trữ bởi avrx (Limburg an der Lahn) [140,88 km]: 14,379 ms
Đang kiểm tra tốc độ tải xuống................................................................
Tải xuống: 309,68 Mbit/giây
Đang kiểm tra tải lên tốc độ................................................................................................
Tải lên: 316,33 Mbit/giây
Chia sẻ kết quả: http://www.speedtest.net/result/xxxxxxxxxxx.png
Dưới đây là hình ảnh kết quả kiểm tra tốc độ của tôi từ bài kiểm traở trên.



Nếu bạn chỉ muốn thông tin về ping, tải xuống và tải lên thì hãy sử dụng:
Mã:
speedtest-cli --simple
Mã:
Ping: 5,23 ms
Tải xuống: 877,56 Mbit/giây
Tải lên: 162,21 Mbit/giây
Bạn cũng có thể kiểm tra danh sách máy chủ dựa trên khoảng cách tính bằng km bằng cách sử dụng:
Mã:
speedtest-cli --list
Mã:
2628) Telstra (Adelaide, Úc) [17098,98 km]
4051) Vodafone Hutchison Úc (AE) (Adelaide, Úc) [17098,98 km]
.................................................................................
3254) Vodafone Hutchison Úc (PH) (Perth, Úc) [18700,26 km]
1931) IX Úc (Perth, Úc) [18700,26 km]


Bằng cách tìm kiếm danh sách theo khoảng cách, bạn có thể tạo ra một danh sách lớn các máy chủ. Nếu bạn muốn kiểm tra kết quả cho các máy chủ của một khu vực cụ thể, thì bạn có thể kiểm tra bằng cách chuyển kết quả đến lệnh grep (Úc là một ví dụ về khu vực):
Mã:
speedtest-cli --list | grep –iAustralia
Mã:
2604) Telstra (Brisbane, Úc) [15501,92 km]
1594) 'Có' Optus (Brisbane, Úc) [15501,92 km]
..................................................................................................................
3254) Vodafone Hutchison Úc (PH) (Perth, Úc) [18700,26 km]
1931) IX Úc (Perth, Úc) [18700,26 km]


Để kiểm tra tốc độ kết nối trên máy chủ cụ thể, bạn phải sử dụng ID máy chủ được tạo ở bước 5 và 6.
Mã:
speedtest-cli --server [ID máy chủ]
Mã:
speedtest-cli --server 2604
Tại đây, ID máy chủ 2604 được sử dụng làm ví dụ:
Mã:
Được lưu trữ bởi Telstra (Brisbane) [15501,92 km]: 452,614 ms
Kiểm tra tốc độ tải xuống........................................
Tải xuống: 28,79 Mbit/giây
Kiểm tra tốc độ tải lên..................................................
Tải lên: 11,71 Mbit/giây
Nếu bạn muốn kiểm tra trợ giúp và số phiên bản của công cụ speedtest-cli, hãy sử dụng các lệnh sau:
Mã:
speedtest-cli --version
Mã:
0.3.4
Mã:
speedtest-cli --help
Mã:
cách sử dụng: speedtest_cli [-h] [--bytes] [--share] [--simple] [--list]
 [--server SERVER] [--mini MINI] [--source SOURCE]
 [--timeout TIMEOUT] [--secure] [--version]
Mã:
Giao diện dòng lệnh để kiểm tra băng thông internet bằng speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli
Mã:
đối số tùy chọn:
 -h, --help hiển thị thông báo trợ giúp này và thoát
 --bytes Hiển thị giá trị theo byte thay vì bit. Không ảnh hưởng đến
 hình ảnh được tạo bởi --share
 --share Tạo và cung cấp URL đến hình ảnh kết quả chia sẻ speedtest.net
 --simple Bỏ qua đầu ra chi tiết, chỉ hiển thị thông tin cơ bản
 --list Hiển thị danh sách các máy chủ speedtest.net được sắp xếp theo
 khoảng cách
 --server SERVER Chỉ định ID máy chủ để kiểm tra
 --mini URL MINI của máy chủ Speedtest Mini
 --source SOURCE Địa chỉ IP nguồn để liên kết đến
 --timeout TIMEOUT Thời gian chờ HTTP tính bằng giây. Mặc định 10
 --secure Sử dụng HTTPS thay vì HTTP khi giao tiếp với
 máy chủ do speedtest.net vận hành
 --version Hiển thị số phiên bản và thoát

Tạo nhật ký tốc độ internet bằng speedtest-cli​

Speedtest-cli có thể được chạy như một cronjob để lấy nhật ký kiểm tra tốc độ internet. Mở crontab bằng lệnh này:
Mã:
crontab -e
Và thêm dòng này (tôi sẽ cho rằng speedtest_cli.py được cài đặt trong /usr/local/bin) vào crontab:
Mã:
30 00 * * * /usr/local/bin/speedtest-cli >> /tmp/speedlog.txt
Lưu các thay đổi và thoát khỏi trình chỉnh sửa crontab. Ứng dụng này sẽ chạy thử nghiệm tốc độ vào lúc 0:30 mỗi ngày và thêm kết quả vào tệp /tmp/speedlog.txt.

Kết luận​

Ứng dụng này nhẹ, dễ sử dụng và chạy mà không có bất kỳ sự cố nào, khiến nó trở thành công cụ không thể thiếu đối với các nhà phát triển và quản trị viên hệ thống.
 
Back
Bên trên