這篇文章主要來簡單寫寫局域網里怎么測速,比如日常換了個新路由,想要測試一下無線性能和覆蓋之類的情況。
外網測速這一塊,市面上的各類軟件已經是數不清了,最有名的應該就是 Ookla 出的 Speedtest 了,各種平台都有對應客戶端,使用起來極其方便,結果輸出簡單直接。
但局域網這一塊就相對來說麻煩一點了,尤其是服務器端的搭建,本文說說測速工具之一的iperf的配置。
實際對於有線連接,Windows 系統自帶的 SMB 共享就是最簡單的測速工具,也是最可靠的,能直接反應實際應用中的傳輸速度。找兩台 pc,一台開共享,另一台直接拷貝個文件過去就能測出來有線傳輸的速度,一般來說內網千兆能實際跑到 980Mbps 左右,如下圖:
有群暉這類 NAS 的話,也是一樣的,直接拷文件,看速度就行。
注意此方法僅限於收發雙方都是有線連接的情況,如果是無線連接的情況,那要考慮各種損耗因素。
特別提示:安卓和 iOS 系統,不要和 windows 之間用 SMB 傳文件來當做測速!
SMB 在非 windows 平台上有很大的效率問題,不同的 app 里能跑出來的速度都不一樣,毫無參考性。比如說 nPlayer 這款很有名的播放器,不管是 iOS 還是安卓,我測試下來都只能最高跑到 60M/s 出頭的速度,但 iperf 測試會發現實際帶寬遠不止這點。
當然了,有人可能會覺得這種測試方法太 low 了,想用高級一點的軟件,這就是本文要說的內容了,主要來說一下 iperf3 這個軟件的使用。
iperf 是一個有很多年歷史的網絡測試工具了,目前最新版本是 iperf3。
官網:https://iperf.fr/iperf-download.php
各種系統平台全都支持,包括幾大主流的 Linux 發行版。
Linux 這邊,一般情況下系統默認源里就會帶有 iperf3,這里以 Debian 系統作為例子,要安裝的話只需要一句:
apt install iperf3
然后 iperf3 就裝好了,安裝之后,可以任意選擇要作為服務器端還是客戶端,一般作為服務器端的話,則運行:
iperf3 -s
程序會自動監聽默認的 5201 端口,防火牆注意也要放行此端口,這樣服務器端就准備好了。
-s 表示運行在服務器模式下,還可以用-p 指定監聽其他端口,-D 參數則可以后台運行。比如想自定義監聽 8888 端口,並且后台運行,則命令如下:
iperf3 -s -p 8888 -D
iperf 實際還有很多可以額外指定的參數,這個具體自己參考網上資料,也不一個個解釋了。
如果有 Docker 的,還能用 Docker 運行,只需要一句命令,即可自動拉取鏡像並運行,傻瓜式完成服務器端搭建:
docker run --restart=unless-stopped --name=iperf3 -d -p 5201:5201/tcp -p 5201:5201/udp mlabbe/iperf3
Windows 系統這邊的服務器搭建是一樣的的辦法,先去下載對應的版本,這年頭一般也就是直接選 64 位最新版的 3.1.3 了。
下載后解壓,進入文件夾后會發現只有這倆文件:
不要點 exe 運行(實際點了也不會有任何效果),而是在程序文件所在的文件夾空白處,按住鍵盤的 shift 鍵,同時單擊鼠標右鍵,選擇在此處打開 PowerShell 窗口,也就是命令行窗口,要注意的是由於 PowerShell 的安全限制,命令前面要加上.
,也就是變成:
.iperf3 -s
后面跟的附加參數之類都是一樣的用法,不再贅述。不過個人感覺是 windows 主機作為服務端效率似乎不高,更推薦 linux 作為服務端。
搭完了服務端,最后就是用客戶端來測速了,其實區別就是輸的指令不同,客戶端最簡單的測速指令就是輸入:
iperf3 -c 192.168.2.165
IP 地址換成自己服務器端的,PowerShell 里運行的話記得前面加.
,然后就可以看到測速結果了,如下圖:
默認是客戶端發送,服務器端接收。也可以反過來,讓服務器端發送,客戶端接收,那就是后面跟隨-R
參數,注意 R 要大寫:
iperf3 -c 192.168.2.165 -R
默認單線程壓力可能會不夠,可以加-P
參數指定多線程,注意是大寫的 P,一般可以設定 5-10 線程:
iperf3 -c 192.168.2.165 -P 5
客戶端默認只會顯示發送的成績,接收的成績在服務器端那邊顯示,顯然看起來不方便,於是還可以跟隨--get-server-output
參數,讓客戶端顯示服務器端的信息:
iperf3 -c 192.168.2.165 --get-server-output
效果如下圖,第二段的 Server output 部分就是服務器端的接收信息:
最后再來說一下無線速率測試,也就是移動端 app 的使用,支持 iperf 的 app 有很多,我個人一般使用的是 he.net - Network Tools
這一款軟件,安卓和 IOS 平台都支持,官網為 http://networktools.he.net/。
實際這是一個測試網絡的綜合型工具,里頭各種功能都有,iperf 只不過是其中一項。軟件的用法也很簡單,菜單列表里直接選擇 iperf3。
秒表圖表是設定數據匯報時間,也就是每隔 N 秒顯示一次速率數據。
第二個芯片圖標是設定測試數據包大小,單位可以是 K 或者 M,10G 數據包就可以直接填 10240M。
最后輸入服務器端的 ip 即可進行測試:
特別要注意的是無線網絡的速率是會有損耗的,不是握手顯示多少速率就能跑多少。比如上圖是兩個手機不同的握手速率,分別為 433Mbps 和 1733Mbps,並不代表就能跑到這么高的速率。
實際能跑到的峰值速度一般是 WiFi 握手速率的 70% 左右,也就是手機單天線 433Mbps 實際能跑到 300Mbps 就算是到頂了,雙天線 866Mbps 一般是 600Mbps 就封頂了。
最后還要說的是測速一概僅供參考,不要盲目迷信測速結果,認為測速成績沒跑滿就是設備或路由有問題。