簡介
? ? ? ? 本文主要介紹內網(局域網)與外網(互聯網)的網絡帶寬測速工具下載地址、選擇指南、參數對比、基本使用。
測速工具快速選擇指南
測速工具下載地址
-
iperf
- 官網下載鏈接:iperf.fr/iperf-download.php
- 該鏈接提供了不同操作系統下的 iPerf 下載,包括 Windows、Linux 和 macOS3。
-
iperf3
- GitHub 倉庫:ESnet/iperf
- iPerf3 是 iPerf 的改進版,可以從其 GitHub 倉庫下載源代碼,適用于多種操作系統2。
-
ntttcp
- GitHub 倉庫:microsoft/ntttcp
- ntttcp 是一個網絡性能測試工具,主要用于 Windows 平臺,可以從其 GitHub 倉庫下載源代碼。
-
TCPburn
- GitHub 倉庫:unixsurfer/tcpburn
- TCPburn 用于生成高負載的 TCP 流量,主要用于壓力測試,可以從其 GitHub 倉庫下載源代碼。
-
Speedtest.net
- 官網:speedtest.net
- Speedtest.net 提供在線的網速測試服務,無需下載,直接在瀏覽器中使用。
-
Fast.com
- 官網:fast.com
- 由 Netflix 提供的快速互聯網連接速度測試服務,同樣是在線使用,無需下載。
-
JPerf
- SourceForge 下載:jperf.sourceforge.net
- JPerf 是 iPerf 的圖形界面版本,適合不熟悉命令行的用戶,可以從 SourceForge 下載。
注意:Github倉庫或部分網址需要魔法網絡進入下載
目錄
簡介
測速工具快速選擇指南
測速工具下載地址
測速工具對比指南
iperf
iperf3? ?全平臺推薦
JPerf
Ntttcp? ?Windows平臺推薦
Netperf
TCPburn
Speedtest.net 等在線測速工具
測速工具參數對比
iperf3
通用參數(服務端/客戶端共用)
服務端專用參數
客戶端專用參數
常見錯誤與注意事項
高級功能
使用幫助
JPerf
發送端
接收端
ntttcp
核心參數
映射參數 (-m)
?使用幫助
Netperf
全局選項(Global options)
(1)全局命令行參數 [global options]
(2)局部可選參數 [test options]
使用幫助
TCPburn
1. 全局配置
2. 網絡環境優化參數
3. 輔助工具配置
注意事項
使用幫助
iperf3使用實例參考?
測速工具對比指南
以下是一些常見的網絡測速工具,包括它們的應用場景、特點、支持的操作系統以及開發背景:
iperf
應用場景:用于測量網絡帶寬和網絡質量,特別是在網絡調試和性能評估時。
特點:支持TCP和UDP,可以測試單個數據流的上傳和下載速度。
操作系統:跨平臺,支持Windows、Linux、macOS。
開發背景:由NLANR/DAST開發,現在是開源項目,由社區維護。
iperf3
應用場景:與iperf類似,但iperf3是iperf的改進版,提供了更精確的測量。
特點:改進了性能和準確性,簡化了命令行參數。
操作系統:跨平臺,支持Windows、Linux、macOS。
開發背景:由ESnet開發,是iperf的后續版本。
JPerf
應用場景:作為iperf的圖形界面版本,適合不熟悉命令行的用戶。
特點:提供直觀的圖形界面,簡化了iperf的使用。
操作系統:跨平臺,支持Windows、Linux、macOS。
開發背景:由社區開發,基于iperf。
Ntttcp
應用場景:用于在Windows平臺上進行網絡性能測試,特別是在大型網絡環境中。
特點:專為Windows設計,支持多線程,可以模擬高并發網絡流量。
操作系統:Windows。
開發背景:由微軟開發,用于內部網絡性能測試。
Netperf
應用場景:用于評估網絡服務的性能,如TCP、UDP、SCTP等。
特點:提供詳細的網絡性能數據,支持多種協議。
操作系統:跨平臺,支持Linux、Unix、Windows(需要自行編譯)。
開發背景:由HP實驗室開發,現在是開源項目。
TCPburn
應用場景:用于生成高負載的TCP流量,用于壓力測試。
特點:可以創建大量的TCP連接,用于測試網絡設備的極限性能。
操作系統:主要支持Linux。
開發背景:由社區開發,用于網絡性能測試。
Speedtest.net 等在線測速工具
應用場景:用于快速檢測4G互聯網連接速度,適合普通用戶。
特點:用戶界面友好,操作簡單,提供全球服務器選擇。
操作系統:跨平臺,通過Web瀏覽器訪問。
開發背景:由Ookla開發,是一個廣泛使用的在線速度測試服務。
這類測速工具較多且衍生出各種不同的測速類型
測速工具參數對比
iperf3
通用參數(服務端/客戶端共用)
參數 | 說明 |
---|---|
-p, --port | 指定服務端監聽的端口號或客戶端連接的端口號(默認:5201) |
-f, --format | 帶寬報告單位:k (Kbits)、m (Mbits)、K (KBytes)、M (MBytes)等 |
-i, --interval | 定期帶寬報告的間隔時間(秒) |
-B, --bind | 綁定到特定網絡接口(IP或網卡名稱) |
-V, --verbose | 輸出詳細日志 |
-J, --json | 以JSON格式輸出結果 |
--logfile | 將輸出保存到日志文件 |
-d, --debug | 輸出調試信息 |
-v, --version | 顯示版本信息 |
-h, --help | 顯示幫助信息 |
服務端專用參數
參數 | 說明 |
---|---|
-s, --server | 以服務端模式運行 |
-D, --daemon | 以守護進程(后臺)模式運行 |
-I, --pidfile | 將進程ID寫入指定文件 |
-1, --one-off | 處理一個客戶端連接后自動退出 |
客戶端專用參數
參數 | 說明 |
---|---|
-c, --client | 以客戶端模式運行,需指定服務端地址(如?-c 192.168.1.100 ) |
-u, --udp | 使用UDP協議(默認TCP) |
-b, --bandwidth | 目標帶寬(支持K/M/G 后綴,如?1G ),UDP默認1Mbit,TCP無限制 |
-t, --time | 測試持續時間(秒,默認10秒) |
-n, --bytes | 傳輸的總字節數(替代?-t ,如?-n 100M ) |
-k, --blockcount | 傳輸的數據塊(包)數量(替代?-t ?或?-n ) |
-l, --len | 緩沖區長度(TCP默認128KB,UDP默認8KB) |
--cport | 綁定客戶端端口(默認隨機端口) |
-P, --parallel | 并行連接的客戶端流數量(用于多線程測試) |
-R, --reverse | 反向模式(服務端發送,客戶端接收) |
-w, --window | 設置TCP窗口大小/套接字緩沖區大小 |
-M, --set-mss | 設置TCP最大段大小(MSS = MTU - 40字節) |
-N, --no-delay | 禁用Nagle算法(降低延遲) |
-4, --version4 | 僅使用IPv4 |
-6, --version6 | 僅使用IPv6 |
-S, --tos | 設置IP服務類型(ToS) |
-Z, --zerocopy | 使用零拷貝技術發送數據(提升性能) |
-O, --omit | 忽略前N秒的數據(用于排除初始波動) |
-T, --title | 在每行輸出前添加前綴字符串 |
--get-server-output | 從服務端獲取測試結果 |
--udp-counters-64bit | UDP測試包中使用64位計數器 |
常見錯誤與注意事項
-
參數錯誤:
-
iperf3: parameter error - must either be a client (-c) or server (-s)
原因:未指定運行模式(服務端或客戶端)。
解決:必須添加?-s
(服務端)或?-c <IP>
(客戶端)。
-
-
帶寬單位混淆:
-
-b 1G
?表示1Gbit/s,若需1GByte/s需寫?-b 8G
(1 Byte = 8 bits)。
-
-
UDP丟包與帶寬限制:
-
UDP默認帶寬較低(1Mbit),需顯式指定?
-b
?參數。
-
-
反向模式(-R):
-
用于測試上行/下行帶寬時,服務端需支持反向模式。
-
-
零拷貝(-Z):
-
需內核支持,可能需root權限。
-
高級功能
-
JSON輸出(-J):
便于腳本解析測試結果,示例:iperf3 -c 192.168.1.100 -J > result.json
-
多流測試(-P):
模擬多用戶并發,測試網絡并發處理能力。 -
綁定CPU/網卡(-B):
在多網卡服務器中指定測試使用的網卡,如?-B eth1
。
?使用幫助
JPerf
????????圖形化中文操作翻譯幫助
發送端
接收端
ntttcp
核心參數
-
模式選擇
-
-s
:作為發送端(sender)運行 -
-r
:作為接收端(receiver)運行 -
-l <Length>
:設置緩沖區長度-
默認:TCP為64KB,UDP為128字節
-
-
-n <Number>
:設置緩沖區數量(默認20,000個) -
-p <port>
:設置基準端口號(默認5001) -
-sp
:同步數據端口(需所有實例的-p
參數相同) -
-ns
:禁用同步(發送端立即開始傳輸,無需與接收端握手)
-
-
超時與性能調優
-
-to <timeout>
:I/O超時時間(毫秒,默認600,000)-
設為
0
表示無限等待(可能導致工具掛起)
-
-
-a <outstanding I/O>
:未完成I/O操作數(默認2) -
-rb <size>
:接收緩沖區大小(默認-1,使用OS動態分配) -
-sb <size>
:發送緩沖區大小(默認0或-1,依賴-a
參數) -
-ndl
:啟用TCP_NODELAY
(禁用Nagle算法)
-
-
協議與傳輸選項
-
-u
:使用UDP協議(默認TCP) -
-w
:使用WSARecv
/WSASend
(Windows異步I/O) -
-rt
:啟用往返模式(Round-Trip) -
-d
:啟用數據驗證 -
-6
:使用IPv6地址 -
-wa
:設置WAIT_ALL
標志(接收數據時等待完整緩沖區)
-
-
高級功能
-
-nic <IP>
:指定發送端使用的網卡IP -
-xml [file]
:保存XML格式結果(默認xml.txt
) -
-na <NUMA node>
:綁定進程到指定NUMA節點 -
-hpt
:隱藏每線程統計信息 -
-uso <size>
:啟用UDP分段卸載(指定最大消息大小) -
-uro
:啟用UDP接收合并 -
-uc
:使用非連接型UDP套接字(sendto
/recvfrom
)
-
-
性能測量與限制
-
-t <Runtime>
:測試運行時間(秒) -
-cd <Cool-down>
:冷卻時間(秒) -
-wu <Warm-up>
:預熱時間(秒) -
-thr <KB/s>
:限制每個線程的發送吞吐量 -
-ps <ms>
:發送間隔(5-1000毫秒,僅單線程同步模式) -
-lm
:啟用延遲測量(可能影響性能)
-
-
調試與輸出
-
-v
:啟用詳細輸出模式 -
-nsb
:禁用標準輸出緩沖(實時刷新日志) -
-jm [file]
:抖動測量(接收端需指定輸出文件)
-
-
其他選項
-
-hv
:使用Hyper-V虛擬網絡(地址需為VM GUID) -
-qos <0-5>
:設置QoS優先級(0=盡力而為,5=最高) -
-icp <threads>
:設置I/O完成端口的最大活動線程數 -
-cfi
:使用空閑CPU周期計算CPU利用率(需Vista+系統)
-
映射參數 (-m
)
指定線程、CPU親和性和目標地址的映射關系:
格式:<線程數>,<CPU編號>,<接收端地址>
示例:
-
-m 4,0,1.2.3.4
:在CPU 0上啟動4個線程,連接至1.2.3.4
-
-m 2,*,contoso
:啟動2個線程(無CPU親和性),連接至contoso
?使用幫助
Netperf
全局選項(Global options)
-a send,recv
:設置本地發送和接收緩沖區的對齊方式。-A send,recv
:設置遠程發送和接收緩沖區的對齊方式。-B brandstr
:指定在簡略輸出中顯示的字符串。-c [cpu_rate]
:報告本地 CPU 使用率。-C [cpu_rate]
:報告遠程 CPU 使用率。-d
:增加調試輸出。-D time,[units]
:至少每隔指定的時間間隔顯示中間結果,使用指定的單位作為每秒單位的初始猜測。負值將大量使用系統的計時功能。-f G|M|K|g|m|k
:設置輸出單位。-F lfill[,rfill]
:用指定文件的數據預填充緩沖區。-h
:顯示幫助信息。-H name|ip,fam
:指定目標機器和/或本地 IP 及其地址族。-i max,min
:指定最大和最小迭代次數(默認為 15,1)。-I lvl[,intvl]
:指定置信水平(95 或 99)和置信區間百分比(默認為 10%)。-j
:保留額外的計時統計數據。-l testlen
:指定測試持續時間(秒)或傳輸的字節數。-L name|ip,fam
:指定本地 IP|名稱及其地址族。-o send,recv
:設置本地發送和接收緩沖區的偏移量。-O send,recv
:設置遠程發送和接收緩沖區的偏移量。-n numcpu
:設置用于計算 CPU 利用率的處理器數量。-N
:不建立控制連接,只執行“發送”端操作。-p port,lport
:指定 netserver 端口號和/或本地端口號。-P 0|1
:不顯示/顯示測試標題。-r
:允許在結果上達到置信度。-s seconds
:測試設置和開始之間的等待秒數。-S
:在數據連接上設置 SO_KEEPALIVE。-t testname
:指定要執行的測試。-T lcpu,rcpu
:請求 netperf/netserver 綁定到本地/遠程 CPU。-v verbosity
:指定詳細級別。-W send,recv
:設置發送和接收緩沖區的數量。-v level
:設置詳細級別(默認為 1,最小為 0)。-V
:顯示 netperf 版本并退出。-y local,remote
:設置套接字優先級。-Y local,remote
:設置 IP_TOS(使用十六進制值)。-Z passphrase
:設置并傳遞給 netserver 一個密碼。
(1)全局命令行參數 [global options]
參數 | 說明 |
---|---|
-H host | 指定遠端運行netserver的server IP地址 |
-l testlen | 指定測試的時間長度(秒) |
-t testname | 指定進行的測試類型(包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR)。 |
(2)局部可選參數 [test options]
參數 | 說明 |
---|---|
-s size | 設置本地系統的socket發送與接收緩沖大小 |
-S size | 設置遠端系統的socket發送與接收緩沖大小 |
-m size | 設置本地系統發送測試分組的大小,測試PPS時值為1。測試BPS時為1400。 |
-M size | 設置遠端系統接收測試分組的大小 |
-p port | 設置測試連接Server端的端口 |
-D | 對本地與遠端系統的socket設置TCP_NODELAY選項 |
-r req,resp | 設置request和reponse分組的大小 |
使用幫助
?
TCPburn
1. 全局配置
參數/配置項 | 說明 |
---|---|
-m | 指定每個實例模擬的并發連接數,例如?-m 3000000 ?表示單個實例模擬 300 萬連接。 |
IP 地址池分配 | 通過 IP 欺騙模擬多個客戶端,需指定內網 IP 地址段(如?192.168.100.0/24 )。 |
端口范圍 | 默認使用端口?32768~65535 ,每個 IP 地址可分配約 3.2 萬端口資源。 |
內存分配 | 每連接約占用 4KB 內存,模擬 2000 萬連接需至少 3GB 內存。 |
路由設置 | 服務端需配置靜態路由,將響應流量導向測試主機(如?route add -net 192.168.100.0/24 gw 測試主機IP )。 |
2. 網絡環境優化參數
配置項 | 說明 |
---|---|
禁用 IP conntrack | 避免內核連接跟蹤消耗資源:iptables -t raw -A PREROUTING -p tcp --dport [端口] -j NOTRACK |
調整文件句柄限制 | 提升系統支持的最大連接數:ulimit -HSn 1000000 (需修改?/etc/security/limits.conf ?永久生效) |
關閉 rp_filter | 防止反向路徑過濾干擾 IP 欺騙:sysctl -w net.ipv4.conf.all.rp_filter=0 |
內核參數優化 | 調整 TCP 緩沖區、最大文件打開數等(如?net.core.somaxconn 、fs.file-max )。 |
3. 輔助工具配置
TCPBurn 依賴?intercept?組件處理響應,需在助手服務器配置:
-
黑洞模式:攔截響應但不處理,僅傳遞頭信息給 TCPBurn。
-
專用通信信道:通過紫色箭頭(特殊信道)傳遞響應頭,支持動態調整請求屬性1。
注意事項
-
IP 欺騙限制:需在內網環境中使用,避免公網路由問題。
-
多實例擴展:通過多臺虛擬機運行 TCPBurn 實例,疊加并發量(如 7 臺虛擬機各模擬 300 萬連接)。
-
內核兼容性:確保內核版本支持高并發(如 Linux 3.10+)
?使用幫助
-
服務端路由設置:
route add -net 192.168.100.0 netmask 255.255.255.0 gw 測試主機IP
-
啟動 TCPBurn:
tcpburn -i [pcap文件] -H 目標服務器IP -p 目標端口 -m 3000000
-
-i
:指定抓包生成的 pcap 文件(包含請求記錄)。 -
-H
:目標服務器 IP。 -
-p
:目標服務端口(如 Nginx 的 8080)。
-
Speedtest.net?
? ? ? ? 基本使用方法:進入主頁點擊測速按鈕,即可完成當前移動數據或有線/無線(互聯網)外網網速的測速,最后查看結果。
https://www.speedtest.cn/
iperf3使用實例參考?
? ? ? ? 其他工具使用方法可根據類推,這里不再贅述
文章地址:iperf3網絡帶寬性能測試工具 局域網網絡最大帶寬高階教程-CSDN博客