Có bao giờ bạn ngồi tự hỏi "ủa vậy đường link này thực tế chạy giữa 2 máy được bao nhiêu Mbps?" mà không biết dựa vào đâu để trả lời chưa? Đó chính là lúc iperf3 phát huy tác dụng.
Bài này mình chia sẻ nhanh cách dùng iperf3 từ A đến Z, kèm ví dụ thực tế mình vừa test giữa một máy Mac và một máy Windows trong mạng LAN.
Iperf3 là gì?
Nói đơn giản, iperf3 là công cụ đo throughput (băng thông thực tế) giữa hai điểm trong mạng. Bạn dựng một máy làm server, một máy làm client, rồi client sẽ "bắn" traffic sang server trong một khoảng thời gian nhất định. Sau đó công cụ sẽ báo cáo lại tốc độ truyền thực tế, có mất gói hay không, jitter bao nhiêu...
Cái hay của iperf3 là nó cho mình con số thật, đo trực tiếp trên đường truyền, chứ không phải lý thuyết trên giấy. Ví dụ bạn có gói cước 100Mbps nhưng thực tế đo ra chỉ 60-70Mbps thì rõ ràng có vấn đề gì đó cần soi lại.
Cài đặt
Iperf3 có bản cho hầu hết các hệ điều hành:
Bước 1: Bật server
Trên máy đóng vai trò server (máy nhận traffic), gõ:
iperf3 -s
Server sẽ lắng nghe trên port mặc định 5201 và chờ client kết nối vào.
Bước 2: Chạy client
Trên máy còn lại, gõ lệnh kết nối tới IP của server:
iperf3 -c <IP_server>
Ví dụ thực tế mình vừa test, server ở IP 192.168.3.53, client chạy:
iperf3 -c 192.168.3.53
Mặc định test sẽ chạy trong 10 giây, mỗi giây iperf3 in ra một dòng thống kê throughput. Kết quả trông như thế này:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 11.0 MBytes 91.2 Mbits/sec
[ 5] 1.01-2.01 sec 10.8 MBytes 90.2 Mbits/sec
[ 5] 2.01-3.01 sec 12.1 MBytes 102 Mbits/sec
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 111 MBytes 92.7 Mbits/sec sender
[ 5] 0.00-10.12 sec 110 MBytes 91.2 Mbits/sec receiver
Đọc kết quả sao cho đúng
Đây là phần nhiều người mới dùng hay bỏ qua. Ở phía client, bạn sẽ thấy 2 dòng tổng kết cuối cùng:
Ở phía server, bạn chỉ thấy dòng receiver thôi, vì server chỉ đóng vai trò nhận:
[ 5] 0.00-10.12 sec 110 MBytes 91.2 Mbits/sec receiver
Và một điểm hay: server mặc định sẽ chạy liên tục, hết test này xong sẽ tự động chờ test tiếp theo (test #2, #3...) chứ không tắt luôn, tiện cho việc test đi test lại nhiều lần mà không cần khởi động lại server.
Một số option hay dùng
Ngoài lệnh cơ bản, có vài tham số mình thấy hữu ích trong công việc hàng ngày:
# Chạy test trong 30 giây thay vì 10 giây mặc định
iperf3 -c 192.168.3.53 -t 30
# Test UDP thay vì TCP, giới hạn băng thông 100Mbps
iperf3 -c 192.168.3.53 -u -b 100M
# Chạy 4 luồng song song, mô phỏng traffic thực tế nhiều kết nối
iperf3 -c 192.168.3.53 -P 4
# Đảo chiều test (client nhận thay vì gửi - test tốc độ download)
iperf3 -c 192.168.3.53 -R
# Test cả 2 chiều cùng lúc (upload + download)
iperf3 -c 192.168.3.53 --bidir
# Đổi port nếu 5201 bị chiếm hoặc bị chặn
iperf3 -c 192.168.3.53 -p 5202
Riêng test UDP thì đáng chú ý hơn vì nó sẽ cho bạn thêm 2 thông số quan trọng mà TCP không có rõ ràng: jitter và packet loss. Hai chỉ số này cực kỳ quan trọng nếu bạn đang test đường truyền cho voice hoặc video, vì TCP có cơ chế tự retransmit nên đôi khi che mất vấn đề thực sự của đường truyền.
Ứng dụng thực tế trong công việc network
Vài tình huống mình hay dùng iperf3:
Screenshot 2026-07-17 at 09.39.59.pngScreenshot 2026-07-17 at 09.40.06.png
Bài này mình chia sẻ nhanh cách dùng iperf3 từ A đến Z, kèm ví dụ thực tế mình vừa test giữa một máy Mac và một máy Windows trong mạng LAN.
Iperf3 là gì?
Nói đơn giản, iperf3 là công cụ đo throughput (băng thông thực tế) giữa hai điểm trong mạng. Bạn dựng một máy làm server, một máy làm client, rồi client sẽ "bắn" traffic sang server trong một khoảng thời gian nhất định. Sau đó công cụ sẽ báo cáo lại tốc độ truyền thực tế, có mất gói hay không, jitter bao nhiêu...
Cái hay của iperf3 là nó cho mình con số thật, đo trực tiếp trên đường truyền, chứ không phải lý thuyết trên giấy. Ví dụ bạn có gói cước 100Mbps nhưng thực tế đo ra chỉ 60-70Mbps thì rõ ràng có vấn đề gì đó cần soi lại.
Cài đặt
Iperf3 có bản cho hầu hết các hệ điều hành:
- macOS: brew install iperf3
- Linux: sudo apt install iperf3 (Ubuntu/Debian) hoặc sudo yum install iperf3 (CentOS/RHEL)
- Windows: tải bản build sẵn từ trang chủ iperf.fr, giải nén ra là chạy được ngay, không cần cài đặt gì thêm
Bước 1: Bật server
Trên máy đóng vai trò server (máy nhận traffic), gõ:
iperf3 -s
Server sẽ lắng nghe trên port mặc định 5201 và chờ client kết nối vào.
Bước 2: Chạy client
Trên máy còn lại, gõ lệnh kết nối tới IP của server:
iperf3 -c <IP_server>
Ví dụ thực tế mình vừa test, server ở IP 192.168.3.53, client chạy:
iperf3 -c 192.168.3.53
Mặc định test sẽ chạy trong 10 giây, mỗi giây iperf3 in ra một dòng thống kê throughput. Kết quả trông như thế này:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 11.0 MBytes 91.2 Mbits/sec
[ 5] 1.01-2.01 sec 10.8 MBytes 90.2 Mbits/sec
[ 5] 2.01-3.01 sec 12.1 MBytes 102 Mbits/sec
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 111 MBytes 92.7 Mbits/sec sender
[ 5] 0.00-10.12 sec 110 MBytes 91.2 Mbits/sec receiver
Đọc kết quả sao cho đúng
Đây là phần nhiều người mới dùng hay bỏ qua. Ở phía client, bạn sẽ thấy 2 dòng tổng kết cuối cùng:
- sender: số liệu đo tại chính máy gửi. Đây là lượng dữ liệu mà ứng dụng đã đẩy vào buffer để gửi đi.
- receiver: số liệu server phản hồi lại, cho biết thực tế nhận được bao nhiêu. Con số này mới là con số phản ánh đúng nhất chất lượng đường truyền.
Ở phía server, bạn chỉ thấy dòng receiver thôi, vì server chỉ đóng vai trò nhận:
[ 5] 0.00-10.12 sec 110 MBytes 91.2 Mbits/sec receiver
Và một điểm hay: server mặc định sẽ chạy liên tục, hết test này xong sẽ tự động chờ test tiếp theo (test #2, #3...) chứ không tắt luôn, tiện cho việc test đi test lại nhiều lần mà không cần khởi động lại server.
Một số option hay dùng
Ngoài lệnh cơ bản, có vài tham số mình thấy hữu ích trong công việc hàng ngày:
# Chạy test trong 30 giây thay vì 10 giây mặc định
iperf3 -c 192.168.3.53 -t 30
# Test UDP thay vì TCP, giới hạn băng thông 100Mbps
iperf3 -c 192.168.3.53 -u -b 100M
# Chạy 4 luồng song song, mô phỏng traffic thực tế nhiều kết nối
iperf3 -c 192.168.3.53 -P 4
# Đảo chiều test (client nhận thay vì gửi - test tốc độ download)
iperf3 -c 192.168.3.53 -R
# Test cả 2 chiều cùng lúc (upload + download)
iperf3 -c 192.168.3.53 --bidir
# Đổi port nếu 5201 bị chiếm hoặc bị chặn
iperf3 -c 192.168.3.53 -p 5202
Riêng test UDP thì đáng chú ý hơn vì nó sẽ cho bạn thêm 2 thông số quan trọng mà TCP không có rõ ràng: jitter và packet loss. Hai chỉ số này cực kỳ quan trọng nếu bạn đang test đường truyền cho voice hoặc video, vì TCP có cơ chế tự retransmit nên đôi khi che mất vấn đề thực sự của đường truyền.
Ứng dụng thực tế trong công việc network
Vài tình huống mình hay dùng iperf3:
- Verify QoS: sau khi cấu hình shaping/policing trên router, dùng iperf3 để xem throughput thực tế có đúng với rate đã cấu hình không.
- Test tunnel VPN/DMVPN: kiểm tra băng thông qua tunnel có đạt đúng cam kết không, đặc biệt sau khi chỉnh MTU/MSS clamping.
- Baseline trước khi thay đổi cấu hình: đo một lần trước, một lần sau khi thay đổi, để có số liệu so sánh khách quan thay vì chỉ cảm giác "chắc là nhanh hơn".
- Troubleshoot nghi ngờ bottleneck: khi user báo mạng chậm, chạy thử iperf3 giữa 2 điểm để xác định vấn đề nằm ở tầng network hay ở tầng ứng dụng.
- Nhớ mở firewall cho port 5201 (hoặc port bạn chọn) trên máy server, không thì client sẽ không connect được.
- Muốn test đúng khả năng của đường truyền vật lý, nên tắt bớt các ứng dụng đang chiếm băng thông trên cả 2 máy trước khi test.
- Nếu kết quả TCP dao động nhiều giữa các giây, thử test lại với UDP để xem có packet loss thật sự không, vì đôi khi TCP tự điều tiết (congestion control) làm số liệu trông "gợn sóng" chứ chưa chắc đường truyền có vấn đề.
Screenshot 2026-07-17 at 09.39.59.pngScreenshot 2026-07-17 at 09.40.06.png