Làm cách nào để kiểm tra tốc độ Internet qua thiết bị đầu cuối?


467

Thay vì truy cập các trang web như speedtest.net , tôi muốn kiểm tra tốc độ Internet hiện tại của mình từ thiết bị đầu cuối trên Ubuntu. Tôi làm nó như thế nào?


4
Kết quả tôi nhận được với speedtest-cli rất lớn theo những gì tôi nhận được từ speedtest.net speedtest-cli Tải xuống 18,27 Mbits / giây Tải lên 3,43 Mbits / s speedtest.net Tải xuống 59,38 Mbits / giây Tải lên 12,14 Mbits / giây Tôi không thể xem xét speedtest-cli trong bất kỳ cách nào để kiểm tra tốc độ mạng hợp lệ.

2
@ user375058: Việc speedtest-clisử dụng cùng các máy chủ (v.v.) như SpeedTest.net. Bạn nên xem xét speedtest-cliwww.speedtest.nettương đương, chỉ với một giao diện người dùng khác. Tôi sẽ ngạc nhiên nếu bạn nhận được kết quả khác nhau đáng kể nếu cả hai đều sử dụng cùng một máy chủ. Nếu họ không sử dụng cùng một máy chủ, thì bạn không có cơ sở để so sánh. Cuối cùng, kết quả của tôi cho cả hai tiện ích thay đổi theo hệ số 2-4 từ chạy sang chạy. Tôi khuyên bạn nên kiểm tra 2-4 máy chủ và thực hiện 3 Chạy4 cho mỗi máy chủ và so sánh các công cụ.
jvriesem

@ user375058: Tôi thực sự chỉ làm những gì tôi đề nghị. Xem liên kết trong bình luận của tôi dưới đây cho kết quả của tôi.
jvriesem

1
sudo apt cài đặt speedtest-cli
ColdCold

Câu trả lời:


753

Tôi đề nghị công cụ speedtest-cli cho việc này. Tôi đã tạo một bài đăng trên blog ( Đo tốc độ kết nối Internet từ dòng lệnh Linux ) để đi sâu vào chi tiết tải xuống, cài đặt và sử dụng nó.

Phiên bản ngắn là đây: (không cần root)

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

Đầu ra:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Comcast Cable (x.x.x.x)...
Selecting best server based on ping...
Hosted by FiberCloud, Inc (Seattle, WA) [12.03 km]: 44.028 ms
Testing download speed........................................
Download: 32.29 Mbit/s
Testing upload speed..................................................
Upload: 5.18 Mbit/s

Cập nhật năm 2018:

Việc sử dụng pip install --user speedtest-clisẽ mang lại cho bạn một phiên bản có thể mới hơn phiên bản có sẵn từ kho lưu trữ phân phối của bạn.

Cập nhật năm 2016:

speedtest-cliHiện đang có trong kho Ubuntu. Đối với Ubuntu 16.04 (Xenial) và sau này sử dụng:

sudo apt install speedtest-cli
speedtest-cli

2
Điều này dường như không hoạt động đúng. Tôi có BT vô cực 50bBit xuống và 20Mbit lên. Nhưng kết quả hiển thị là 0,53Mbit xuống và 0,2Mbit tăng. Huh? Đặt thập phân không chính xác? bằng cách sử dụng wget tôi nhận được 4,27M / s (34Mbit) (một số máy chủ khác)?
Piotr Kula

34
Như đã được trình bày ở đây : Vì speedtest-cli là một ứng dụng python, nên việc cài đặt dễ dàng hơn nhiều bằng cách thực hiện: pip install speedtest-cli hoặc: easy_install speedtest-cli Tùy thuộc vào cách Python được cài đặt trên hệ thống của bạn, bạn có thể cần phải root để thực hiện việc trên.
CrandellWS

1
Xác nhận rằng speedtest-cli bị hỏng . Không hiển thị tốc độ trên 1Mbps. Không chuyển bất kỳ thông tin nào khi yêu cầu làm như vậy.
int_ua

5
Đây thực sự nên là câu trả lời được chấp nhận ... speedtest-cli đang hoạt động tốt với tôi; nghĩ rằng @int_ua hoặc có vấn đề tương thích hoặc vấn đề internet.
Peelman

2
Đây phải là câu trả lời đúng. Kiểm tra tốc độ có nghĩa là tải xuống VÀ tải lên. Câu trả lời đầu tiên CHỈ đo tốc độ tải xuống, KHÔNG phải là hình ảnh đầy đủ về tốc độ kết nối internet của bạn. Đặc biệt là nếu bạn đang lưu trữ một cái gì đó trên máy đó!
Emil Borconi

92

thử cái này trên dòng lệnh

wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip

cũng thử cái này

sourceforge.net/projects/tespeed/

có nó từ liên kết trên


2
Bạn có thể giải thích những gì /dev/nullđại diện cho?
hấp dẫn về

12
Đây là tập tin không gian đơn giản chỉ là dữ liệu xóa được ghi vào nó,
Tachyons

2
Đối với tôi trên Ubuntu 14.10 với python 2.7.8, lệnh wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.ziphoạt động tốt hơn nhiều so với việc sử dụng speedtset-clisau này dường như đóng băng và ^ C không làm gián đoạn lệnh. Với wget, tôi không gặp vấn đề gì khi cắt shrot tải xuống với ^ C
Willoczy

1
@mlissner, trông giống như tốc độ đầu tiên tính bằng megabits, thứ hai tính bằng megabyte ..
vp_arth

1
@mlissner 1,5 x 8 = 12. một là kbps và khác là KBps :-)
Tachyons

55

Nếu bạn không thể cài đặt iperf, bạn có thể đặt trước bất kỳ lệnh nào làm dịch chuyển một lượng dữ liệu đã biết bằng timelệnh và thực hiện tổng.

iperf rất đơn giản và dễ sử dụng.

Nó đòi hỏi một khách hàng và máy chủ.

(trên máy chủ)

 user@server$ iperf -s

(trên máy khách)

 user@client$ iperf -c server.domain
 ------------------------------------------------------------
 Client connecting to 192.168.1.1, TCP port 5001
 TCP window size: 16.0 KByte (default)
 ------------------------------------------------------------
 [  3] local 192.168.1.3 port 52143 connected with 192.168.1.1 port 5001
 [ ID] Interval       Transfer     Bandwidth
 [  3]  0.0-10.0 sec    113 MBytes  94.7 Mbits/sec

Thêm chi tiết


7
+1 iperf là ​​tuyệt vời để xác nhận tốc độ ethernet và WIFI
kfmfe04

1
iperflà tuyệt vời cho LAN nhưng người dùng đang hỏi về mạng LAN.
IMTheNachoMan

34

Vâng, tôi sử dụng wgetcho nó. Công cụ nhỏ đó cho tôi biết tốc độ tôi có.

Để sử dụng nó, chỉ cần trỏ đến một tệp trong internet tương đối lớn hơn để bạn có thể ước tính tốt hơn về nó.

Ví dụ

gõ: wget http://hostve.com/neobuntu/pics/Ubu1.avisẽ bắt đầu tải xuống tệp Ubu1.avi và hiển thị ở tốc độ mà nó đang tải xuống.

nhập mô tả hình ảnh ở đây

Tất nhiên có một số khuyến nghị:

  1. Kiểm tra tốc độ bản thân với các máy chủ tốt. Trong trường hợp liên kết của tôi, tốc độ dưới 200KB, vì vậy nếu bạn có tốc độ cao hơn, máy chủ sẽ là nút cổ chai cho bạn, không phải tốc độ thực tế của bạn.

  2. Tốc độ cao nhất bạn sẽ thấy là tốc độ tối đa mà kết nối của bạn và kết nối của máy chủ có thể cung cấp. Nếu kết nối của bạn là 512KB và nơi bạn đang tải xuống là 400KB, kết nối tối đa của bạn sẽ là 400KB vì đó là mức tối đa cho máy chủ bạn đang tải xuống.

  3. Bạn cần làm bài kiểm tra ít nhất 5 lần để kiểm tra tốc độ đáng tin cậy hoặc ít nhất là thực hiện trong một hoặc hai phút. Điều này sẽ giúp bạn có một kiểm tra chính xác hơn.

  4. Bạn cần có ít nhất 4 hoặc 5 nguồn thử nghiệm khác nhau để có tốc độ chính xác hơn. Không bao giờ chỉ kiểm tra từ cùng một trang vì điều này có thể bị ảnh hưởng bởi khoảng cách của bạn với nó, bất kỳ vấn đề nào trong máy chủ và các kết nối đến nó, v.v. Luôn luôn kiểm tra từ các máy chủ khác nhau.

ARIA2

Đây là một thay thế cho wget. Nhược điểm của wgetlà thiếu kết nối song song. Để sử dụng aria2, chúng tôi cần phải tải xuống:

   sudo apt-get install aria2

Để sử dụng nó rất đơn giản:

nhập mô tả hình ảnh ở đây

Trong ảnh, -x 4 là số lượng kết nối song song chúng ta muốn sử dụng. Tham số CN trong dòng tiếp theo cho thấy có bao nhiêu kết nối song song hoạt động được phép tải xuống từ trang web đó. Trong trường hợp này CN là 4. Nhưng nếu chúng tôi cố gắng có nhiều kết nối hơn, chúng tôi sẽ nhận được một cái gì đó như thế này:

nhập mô tả hình ảnh ở đây

Chúng tôi đặt 8 kết nối song song nhưng trang web chỉ cho phép tối đa 5 như được hiển thị bởi CN: 5. Điều này có thể được giải quyết bằng tùy chọn -j cho aria2c biết các kết nối đồng thời tối đa mà chúng tôi muốn (theo mặc định là 5) nhưng nếu máy chủ đã giới hạn điều này, -j sẽ không hoạt động.


1
wget không thể (chưa) có thể thực hiện tải xuống được phân đoạn, nghĩa là tải xuống một tệp bằng nhiều kết nối (song song), vì vậy nếu ISP của bạn giới hạn tốc độ trên 1 kết nối, bạn sẽ không nhận được kết quả chính xác ... sẽ là một thử nghiệm chính xác hơn để sử dụng một số công cụ khác, ít nhất có thể sử dụng tải xuống được phân đoạn (như aria2)
Mladen B.

3
Đây KHÔNG phải là speedtest, đây chỉ là bài kiểm tra tốc độ TẢI XUỐNG! Kiểm tra tốc độ Internet có nghĩa là tải xuống & tải lên! Câu trả lời thứ hai, và tất cả những người khác đề cập đến speedtest-cli đều có cách tiếp cận đúng.
Emil Borconi

1
@EmilBorconi Bạn đúng nhưng trong thực tế, chúng tôi không thực hiện đo điểm chuẩn tốc độ Internet ở đây, đây chỉ là thử nghiệm tốc độ trung bình hiện tại của bạn cho bất kỳ người dùng gia đình nào mà không cần các trang web như speedtest. Tốc độ tải xuống (đủ để bất cứ ai cố gắng xem liệu họ có đang bị nghẽn cổ chai hay không) là một thử nghiệm đủ tốt. Một bài kiểm tra tốc độ xuống / lên đầy đủ sẽ kiểm tra phạm vi toàn bộ tốc độ của bạn dựa trên ISP của bạn. Vì vậy, đó sẽ là giải pháp tốt nhất, nhưng đối với bất kỳ kịch bản thử nghiệm nhanh nào, ngay cả một wget đơn giản cũng sẽ thực hiện thủ thuật vì thông thường mọi người lo lắng về tốc độ tải xuống hơn là tải lên.
Luis Alvarado

1
@LuisAlvarado xin lỗi nếu tôi nghe có vẻ thô lỗ, chỉ là tôi nghĩ mọi người nên có thể hiểu đầy đủ những gì họ đang hỏi / và câu trả lời được chấp nhận là gì. Rất nhiều người mới sẽ xem các diễn đàn và họ sẽ giả định / chọn / dừng lại ở câu trả lời được chấp nhận và họ tạo thành một hình ảnh sai lệch trong đó. Và có, tải xuống quan trọng hơn sau đó tải lên trừ khi bạn là một kẻ cuồng facebook, những người đăng ảnh tự sướng cứ sau 5 phút, sau đó bắt đầu một cuộc chiến với ISP của bạn chỉ vì bạn đã kiểm tra tải xuống đó là tốt, nhưng bạn lại tải lên một cách nhảm nhí ... Một lần nữa xin lỗi nếu giọng điệu của tôi thô lỗ, không muốn xúc phạm ...
Emil Borconi

1
Tôi thích điều này wgethơn curlvì điều này wgethiển thị MB/s(rất rõ ràng đó là MBytes / s), trong khi curlchỉ hiển thị k(không rõ ràng rằng đó là KBytes / s).
wvducky

19

Vì speedtest-cli là một ứng dụng python, nên việc cài đặt dễ dàng hơn nhiều:

pip install speedtest-cli

hoặc là:

easy_install speedtest-cli

Tùy thuộc vào cách Python được cài đặt trên hệ thống của bạn, bạn có thể cần phải root để thực hiện các thao tác trên.


7

Tôi tình cờ thích speedometerUbuntu cli.

speedometer -r eth0

Để xem biểu đồ trực tiếp về tốc độ dữ liệu đến.


đó thực sự là những gì tôi đang tìm kiếm trong một thời gian! cảm ơn! nhưng tôi không thích nó hiển thị tốc độ trong Kib chứ không phải Kb hay KB
redbeam_

3

Chạy một số trường hợp của wget với lệnh hết thời gian trên các tệp lớn:

#!/bin/bash

timeout 5 wget -q url_1/100MB.zip &
timeout 5 wget -q url_2/file.zip &
timeout 5 wget -q url_3/sample.mov &
timeout 5 wget -q url_4/speech.mp4 &

Và sau đó viết một tập lệnh để tính tổng số byte được tải xuống và chia 5 giây, bạn sẽ nhận được một byte / giây. Nên khá chính xác và bạn có thể thêm nhiều phiên bản để tối đa hóa băng thông của mình.

Tôi vẫn chưa kiểm tra tập lệnh đầy đủ nhưng lệnh một dòng "hết thời gian chờ 5 wget url" hoạt động và kết quả là bạn đã nhận được một tệp được tải xuống một phần (nếu 5 giây không đủ để hoàn tất tải xuống).


Điều này sẽ yêu cầu một số máy chủ được thiết lập ...
Braiam

url_1,2,3,4 có thể là bất cứ thứ gì, chẳng hạn như máy chủ công cộng.
rexis

ví dụ timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5secsau đó phân tích kích thước tệp và chia theo 5: tính expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024bằng kbit / s
rubo77

3

bạn có thể sử dụng tespeed. đó là một bài kiểm tra tốc độ mạng Terminal sử dụng các máy chủ từ Speedtest.net. Nó sử dụng máy chủ thử nghiệm gần nhất nhưng cũng có thể sử dụng một máy chủ được chỉ định thủ công.

 git clone git://github.com/Janhouse/tespeed.git
 cd tespeed
 git submodule init
 git submodule update
 ./tespeed.py 

nhập mô tả hình ảnh ở đây

để biết thêm thông tin sử dụng:

 ./tespeed.py  -h

nó sẽ cung cấp thêm tùy chọn để kiểm tra tốc độ.


Lưu ý: yêu cầulxml
Matt

2

một lớp lót đơn giản kiểm tra thời gian tải xuống 100MB (cũng hoạt động trên đó /bin/sh):

t=$(date +"%s"); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n "MBit/s: "; expr 8 \* 100 / $(($(date +"%s")-$t))

giải trình:

  1. lưu trữ dấu thời gian trong $ t
  2. tải xuống 100mb nhưng không lưu trữ bất cứ thứ gì
  3. tính toán 8 * 100mb / $t

Điều này hoạt động rất tốt khi tôi đang thử nghiệm từ một rootFS chỉ đọc không trạng thái và wgetkhông vượt quá tốc độ.
Josh Habdas

2

Kịch bản bash đơn giản dựa trên câu trả lời @rexis. Bạn có thể đặt các liên kết của riêng mình để kiểm tra trong linksmảng hoặc đọc chúng từ tệp

#!/bin/bash
export LC_ALL=C  #make output in English eg for later use with "du | grep"

TMP_PATH=/tmp/speedtest_data/
TEST_TIME=5

rm -rf $TMP_PATH && mkdir $TMP_PATH

links=("http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-2b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1c.bin" "http://ftp.ntua.gr/pub/linux/ubuntu-releases-dvd/quantal/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.funet.fi/pub/Linux/INSTALL/Ubuntu/dvd-releases/releases/12.10/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/13.2/iso/openSUSE-13.2-DVD-x86_64.iso")

echo "Testing download"

for link in ${links[*]}
do
    timeout $TEST_TIME wget -q -P $TMP_PATH $link &
done

wait

total_bytes=$(du -c -b $TMP_PATH | grep total | awk '{print $1}')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(echo "scale=2; $total_bytes / $TEST_TIME / 128" |bc)

echo "Speed is $speed Mbit/s"

exit 0

một điểm trừ - còn khi tôi sử dụng ngôn ngữ khác là tiếng Anh thì sao? xem: grep :) phần
ceph3us

1

Để thuận tiện nhận tốc độ tải xuống của tôi theo bit mỗi giây, tôi xác định các mục sau trong tệp $ HOME / .bash_aliases của mình:

speed-test='wget --output-document=/dev/null --report-speed=bits http://speedtest.wdc01.softlayer.com/downloads/test500.zip'

Ở đâu:

--output-document=/dev/null loại bỏ hiệu quả đầu ra wget

--report-speed=bits hiển thị tốc độ tải xuống trung bình của wget tính bằng bit trên mỗi giây (bps) thay vì byte mặc định mỗi giây (Bps)



0

Tôi muốn một cái gì đó cao cấp hơn speedtest.net và các giải pháp khác nhau chỉ dựa trên một trang web duy nhất. Vì vậy, tôi đã làm điều tôi thường làm và viết giải pháp của riêng mình:

https://github.com/cubiclesoft/network-speedtest-cli

Từ danh sách tính năng:

  • Kiểm tra tốc độ SSH / SFTP (cổng 22).
  • Các cổng TCP phổ biến 80, 443 và 8080 cũng như kiểm tra tốc độ cổng TCP ngẫu nhiên bằng máy chủ TCP / IP tùy chỉnh hỗ trợ tốc độ xuống tới 2,2 Gbps và tăng 780 Mbps.
  • Kiểm tra độ trễ mạng khá cơ bản.
  • Quay các giọt Digital Ocean và kiểm tra tốc độ SSH / SFTP và các cổng TCP khác nhau.
  • Speedtest.net và kiểm tra tốc độ OoklaServer tùy chỉnh. Tạo kết quả tương tự với các thử nghiệm kết nối đơn tại single.speedtest.net.
  • Đầu ra JSON thuần trong chế độ im lặng (-s).

Đó là một giải pháp chung hơn có thể được sử dụng bởi các ứng dụng khác. Tôi đã cố gắng xác định chính xác sự cố mạng ISP với nó dẫn đến tăng gấp đôi tốc độ hạ lưu SFTP của tôi, điều này dẫn đến hạnh phúc gia tăng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.