Hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux và Windows

10 phút đọc - 7 tháng 5, 2026

hero section cover

Cài đặt iperf3, thực hiện các bài kiểm tra băng thông và điều chỉnh bộ đệm TCP để có kết quả chính xác trên Linux và Windows. Bao gồm các bài kiểm tra UDP, hai chiều và 10GbE+.

Hướng dẫn sử dụng iperf3: Đo lường hiệu suất mạng trên Linux và Windows

iperf3 là một công cụ dòng lệnh dùng để đo băng thông mạng, độ dao động (jitter) và tỷ lệ mất gói tin giữa hai máy. Công cụ này sử dụng mô hình máy khách-máy chủ: một máy lắng nghe, máy kia gửi lưu lượng, và bạn sẽ nhận được các số liệu thông lượng chính xác. Hướng dẫn này bao gồm cài đặt, các bài kiểm tra cơ bản và nâng cao, cũng như cách tối ưu hóa hệ thống để có kết quả chính xác trên các kết nối tốc độ cao.

Cài đặt iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

Xác nhận việc cài đặt bằng lệnh iperf3 --version. Cài đặt nó trên cả máy chủ và máy khách.

Fedora / CentOS / Rocky / Alma

Trên Fedora 22 trở lên hoặc CentOS 8 trở lên, Rocky hoặc AlmaLinux:

sudo dnf install iperf3

Trên CentOS 7, hãy sử dụng yum thay thế. Nếu không tìm thấy gói phần mềm, hãy kích hoạt kho EPEL trước:

sudo yum install epel-release
sudo yum install iperf3

Nếu tường lửa đang hoạt động, hãy mở cổng 5201:

sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload

Windows

Tải xuống tệp thực thi độc lập từ iperf.fr hoặc kho GitHub ar51an/iperf3-win-builds. Giải nén tệp vào một thư mục như C:\iperf3, sau đó kiểm tra:

cd C:\iperf3
iperf3.exe -v

Để chạy iperf3 từ bất kỳ thư mục nào, hãy thêm thư mục đó vào biến môi trường PATH của hệ thống qua Thuộc tính Hệ thống > Nâng cao > Biến môi trường. Bạn cũng cần tạo một quy tắc tường lửa cho phép kết nối TCP trên cổng 5201 trong Tường lửa Windows Defender.

Cài đặt máy chủ

Khởi động máy chủ bằng lệnh:

iperf3 -s

Theo mặc định, máy chủ này lắng nghe trên cổng TCP 5201. Để chạy nó ở chế độ nền kèm theo ghi nhật ký:

iperf3 -s -D --logfile /var/log/iperf3.log

Kiểm tra xem nó có đang chạy không bằng lệnh ss -tulpn | grep 5201.

Nếu cổng 5201 bị chặn trên mạng của bạn, hãy sử dụng -p để chọn một cổng khác. Để gán máy chủ đến một giao diện cụ thể, hãy sử dụng -B:

iperf3 -s -B 192.168.1.10

Đối với các thử nghiệm một lần, iperf3 -s -1 chương trình sẽ xử lý một kết nối khách hàng duy nhất rồi thoát. Trên các kết nối băng thông cao (40 Gbps trở lên), hãy chạy nhiều phiên bản máy chủ trên các cổng khác nhau để khắc phục giới hạn CPU một luồng.

Đảm bảo tường lửa của bạn cho phép lưu lượng truy cập trên cổng đã chọn. Trên Ubuntu/Debian với UFW:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

Thực hiện các bài kiểm tra khách hàng

Kiểm tra TCP cơ bản

iperf3 -c 192.168.1.10

Thử nghiệm này đo băng thông tải lên qua TCP trong 10 giây. Mở rộng thời gian bằng -t:

iperf3 -c 192.168.1.10 -t 30

Trên các liên kết 10 Gbps hoặc 25 Gbps, một luồng TCP đơn lẻ thường đạt mức tối đa 3–5 Gbps do giới hạn của CPU lõi đơn. Sử dụng các luồng song song để bão hòa liên kết:

iperf3 -c 192.168.1.10 -P 8

Đọc kết quả

Mỗi dòng khoảng thời gian hiển thị Dung lượng truyền (dữ liệu đã gửi) và Tốc độ bit (thông lượng). Đối với TCP, cũng cần chú ý đến:

  • Retr (số lần truyền lại). Con số cao có nghĩa là mất gói tin hoặc tắc nghẽn.
  • Cwnd (cửa sổ tắc nghẽn). Nếu giá trị này thấp hoặc bị kẹt, giới hạn kích thước bộ đệm hoặc cửa sổ đang hạn chế thông lượng.

Trên một kết nối 1 Gbps không bị gián đoạn, dự kiến sẽ đạt khoảng 940 Mbps sau khi trừ đi chi phí giao thức. Thử nghiệm kết thúc với các dòng tóm tắt của người gửi và người nhận. Trên một mạng ổn định, các giá trị này sẽ gần như trùng khớp.

Đối với các thử nghiệm UDP (-u flag), kết quả còn hiển thị độ dao động (jitter - độ biến thiên thời gian đến của gói tin) và số datagram bị mất so với tổng số. Độ dao động dưới 1 ms và tỷ lệ mất gói 0% là lý tưởng cho lưu lượng thời gian thực như VoIP.

Các cờ hữu ích

CờMục đích
-c <IP>Kết nối với máy chủ
-p <port>Sử dụng cổng cụ thể (mặc định: 5201)
-t <sec>Thời gian kiểm tra tính bằng giây (mặc định: 10)
-i <sec>Khoảng thời gian báo cáo
-P <num>Luồng song song
-uChế độ UDP
-b <n>MBăng thông mục tiêu (UDP; mặc định là 1 Mbps nếu không được chỉ định)
-RChế độ đảo ngược (máy chủ gửi, máy khách nhận)
-w <n>KKích thước cửa sổ TCP / bộ đệm socket
-JĐầu ra JSON
-ZZerocopy (giảm tải CPU trên các kết nối nhanh)

Các bài kiểm tra nâng cao

Kiểm tra hai chiều

Cờ --bidir (iperf3 3.7+) kiểm tra tốc độ tải lên và tải xuống đồng thời:

iperf3 -c 192.168.1.10 --bidir

Cả hai kết nối đều bắt nguồn từ máy khách, do đó tính năng này hoạt động qua NAT mà không cần mở thêm cổng. Nếu kết quả kiểm tra hai chiều thấp hơn nhiều so với kiểm tra một chiều, có thể bộ định tuyến hoặc modem cáp của bạn đang gặp khó khăn với lưu lượng truy cập song công.

Chế độ đảo chiều

Tham số -R cờ này đảo ngược luồng dữ liệu để máy chủ gửi và máy khách nhận. Điều này đo tốc độ tải xuống mà không cần hoán đổi vai trò:

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

Sự chênh lệch lớn giữa kết quả tiến và lùi cho thấy đường truyền không đối xứng, tắc nghẽn hoặc cấu hình bộ đệm không chính xác.

Kiểm tra UDP

Các bài kiểm tra UDP cho thấy độ dao động và mất gói tin, những hiện tượng mà TCP che giấu bằng các lần truyền lại. Luôn đặt băng thông mục tiêu với -b, vì iperf3 mặc định là 1 Mbps cho UDP:

iperf3 -c 192.168.1.10 -u -b 1G

Để mô phỏng lưu lượng VoIP (100 cuộc gọi, gói tin 200 byte):

iperf3 -c 192.168.1.10 -u -b 8M -l 200

Tiêu chuẩn chất lượng: độ dao động dưới 5 ms là tốt cho VoIP, trên 30 ms sẽ gây ra các vấn đề có thể nghe thấy được. Mất gói tin trên 0,1% làm suy giảm đáng kể chất lượng phương tiện truyền thông thời gian thực.

Tối ưu hóa và khắc phục sự cố

Các vấn đề thường gặp

Chỉ đạt được 100 Mbps trên kết nối gigabit? Hãy kiểm tra tốc độ giao diện vật lý của bạn bằng ethtool eth0. Quá trình tự động thương lượng đôi khi thất bại và làm giảm tốc độ kết nối xuống mức thấp hơn.

MSS hiển thị 536 byte trên Ethernet? Có thể tính năng Path MTU Discovery đã bị tắt. Giá trị MSS mặc định cho MTU 1.500 byte là 1.460 byte. Hãy sử dụng -m trong quá trình kiểm tra để xác minh. MSS 536 byte gây lãng phí băng thông và tăng thêm gánh nặng.

CPU hoạt động hết công suất trên các kết nối tốc độ cao? Hãy sử dụng -Z (zerocopy) để giảm tải CPU. Đối với tốc độ 40 Gbps trở lên, hãy chạy nhiều phiên bản máy chủ trên các cổng khác nhau và phân bổ chúng trên các lõi CPU.

Kết quả không nhất quán? Sử dụng -O 3 để bỏ qua vài giây đầu tiên khi cửa sổ tắc nghẽn TCP đang tăng dần. Để khoảng 30 giây giữa các lần chạy thử nghiệm để xóa bộ đệm mạng.

Luồng đơn chậm hơn nhiều so với tổng các luồng song song? Nếu một luồng đạt 200 Mbps nhưng tám luồng cộng lại đạt 1,6 Gbps, thì cửa sổ TCP hoặc bộ đệm hệ điều hành đang giới hạn luồng đơn. Điều chỉnh các bộ đệm dưới đây.

Điều chỉnh bộ đệm TCP

Bắt đầu bằng cách tính toán Sản phẩm Băng thông-Độ trễ (BDP): băng thông × RTT. Một liên kết 10 Gbps với RTT 50 ms cho BDP là 62,5 MB. Đặt bộ đệm tối đa của bạn ít nhất gấp 2 lần BDP.

Thêm các giá trị này vào /etc/sysctl.d/99-tcp-tuning.conf và áp dụng với sudo sysctl -p:

Tham sốĐề xuất (1–10 Gbps)
net.core.rmem_max134217728 (128 MB)
net.core.wmem_max134217728 (128 MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Giữ net.ipv4.tcp_moderate_rcvbuf giá trị này là 1 để nhân hệ điều hành tự động điều chỉnh trong các phạm vi này. Kích hoạt net.ipv4.tcp_window_scaling (đặt thành 1) để có các cửa sổ TCP lớn hơn 64 KB.

Bạn cũng có thể chuyển từ thuật toán xử lý tắc nghẽn mặc định CUBIC sang BBR của Google. Trên các kết nối có độ trễ cao kèm theo mất gói tin, BBR luôn mang lại thông lượng cao hơn so với CUBIC.

Sử dụng -w cờ này trong iperf3 để kiểm tra các kích thước bộ đệm cụ thể, nhưng lưu ý rằng kích thước này không được vượt quá giới hạn rmem_max hoặc wmem_max. Bắt đầu với 8 MB cho các kết nối gigabit, 512 KB cho 100 Mbps.

Nếu bạn đang triển khai các máy chủ chuyên dụng và muốn xác thực hiệu suất mạng, hãy chạy các bài kiểm tra cơ sở iperf3 ngay sau khi thiết lập và sau bất kỳ thay đổi mạng nào để phát hiện sớm các sự suy giảm hiệu suất.

Đề xuất video

Blog

Nổi bật trong tuần

Các bài viết khác
Hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux và Windows

Hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux và Windows

Cài đặt iperf3, thực hiện các bài kiểm tra băng thông và điều chỉnh bộ đệm TCP để có kết quả chính xác trên Linux và Windows. Bao gồm các bài kiểm tra UDP, hai chiều và 10GbE+.

10 phút đọc - 7 tháng 5, 2026

Các bài viết khác
background image

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức