Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn cách kiểm tra băng thông chính xác với lệnh vnstat

    Nguyễn Hưng

    Ngày đăng:

    10/01/2026

    Cập nhật lần cuối:

    10/01/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    10/01/2026

    Cập nhật lần cuối:

    10/01/2026

    Mục lục

    Kiểm tra băng thông với lệnh vnstat là giải pháp tối ưu giúp bạn quản lý lưu lượng mạng trên Linux theo thời gian thực mà không cần quyền root. vnstat hoạt động như một trình thu thập dữ liệu thông minh, ghi lại chi tiết lưu lượng truyền tải hàng giờ, hàng ngày và hàng tháng một cách trực quan. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết về cách sử dụng vnstat để kiểm tra băng thông nhanh chóng, chính xác.

    Những điểm chính

    • Khái niệm lệnh vnstat: Hiểu rõ khái niệm và cơ chế hoạt động không cần quyền root của vnstat để giám sát lưu lượng mạng.
    • Cách cài đặt và cấu hình: Nắm vững quy trình cài đặt, kích hoạt dịch vụ, khởi tạo database và chỉnh sửa file cấu hình để vnstat hoạt động chính xác.
    • Các lệnh kiểm tra băng thông: Thành thạo các lệnh để xem thống kê tổng quan, chi tiết theo giờ/ngày/tháng, giám sát thời gian thực và trực quan hóa dữ liệu.
    • Khi nào nên dùng vnstat: Phân biệt được ưu điểm của vnstat so với các công cụ khác như bmon, iftopnethogs để chọn giải pháp phù hợp.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như ảnh hưởng hiệu suất, giám sát nhiều card mạng và cách reset dữ liệu thống kê.

    Lệnh vnstat là gì?

    vnstat là một công cụ dòng lệnh miễn phí và mã nguồn mở trên Linux/BSD dùng để giám sát và thống kê lưu lượng mạng của server một cách tự động, liên tục và theo từng card mạng. Khi gõ lệnh vnstat trên terminal, bạn sẽ nhận được báo cáo tổng hợp về lượng dữ liệu đã truyền (download/upload) qua card mạng theo các mốc thời gian như hôm nay, hôm qua, tháng này, cùng với ước tính tổng dung lượng của cả tháng.

    Khác với các công cụ khác, vnstat sử dụng số liệu thống kê được cung cấp bởi nhân hệ điều hành (kernel) thay vì tự bắt các gói tin. Nhờ đó, công cụ này hoạt động rất nhẹ, tiêu tốn ít tài nguyên hệ thống và có thể lưu trữ lịch sử sử dụng băng thông ngay cả khi máy chủ khởi động lại.

    vnstat là một lệnh để giám sát và thống kê lưu lượng sử dụng băng thông mạng
    vnstat là một lệnh để giám sát và thống kê lưu lượng sử dụng băng thông mạng

    Bước 1: Cài đặt vnstat

    Cách 1: Cài đặt qua trình quản lý gói

    vnstat thường không được cài đặt sẵn và cần một bước thiết lập ban đầu để bắt đầu theo dõi.

    • Trên Debian/Ubuntu:
    sudo apt-get update && sudo apt-get install vnstat
    • Trên CentOS/RHEL:
    sudo yum install vnstat

    Cách 2: Cài đặt từ mã nguồn

    Sử dụng phương pháp này khi bạn muốn cài đặt phiên bản vnstat mới nhất mà hệ thống chưa hỗ trợ, hoặc trên các distro không có sẵn gói.

    • Cài đặt các công cụ cần thiết:
    # Trên Debian/Ubuntu
    sudo apt-get install build-essential
    # Trên CentOS/RHEL
    sudo yum groupinstall "Development Tools"
    • Tải mã nguồn và giải nén: Bạn truy cập trang chủ vnstat để lấy link phiên bản mới nhất)
    wget https://humdi.net/vnstat/vnstat-2.12.tar.gz tar -zxvf vnstat-2.12.tar.gz cd vnstat-2.12
    • Biên dịch và cài đặt:
    ./configure --prefix=/usr --sysconfdir=/etc make sudo make install

    Bước 2: Kích hoạt và khởi động dịch vụ

    Để vnstat có thể chạy ngầm và tự động thu thập dữ liệu ngay cả sau khi khởi động lại máy chủ, bạn cần kích hoạt dịch vụ hệ thống:

    sudo systemctl enable vnstat
    sudo systemctl start vnstat

    Bước 3: Khởi tạo Database cho card mạng

    vnstat cần tạo một tệp cơ sở dữ liệu riêng để theo dõi từng giao diện mạng (interface) cụ thể. Bạn kiểm tra danh sách card mạng hiện có bằng lệnh:

    vnstat --iflist

    Khởi tạo database cho giao diện mong muốn (Thay eth0 bằng tên card mạng của bạn, ví dụ: ens33 hoặc wlan0)

    sudo vnstat -u -i eth0

    iconLưu ý

    Sau khi chạy lệnh trên, bạn cần chờ khoảng 5-10 phút để vnstat thu thập những dữ liệu đầu tiên.

    Bước 4: Chỉnh sửa file cấu hình /etc/vnstat.conf

    Chỉnh sửa file cấu hình là bước quan trọng để bạn tùy chỉnh vnstat theo nhu cầu. Tiếp theo, bạn cần mở file cấu hình:

    sudo nano /etc/vnstat.conf

    Các tùy chỉnh quan trọng:

    • Interface "eth0": Nếu server của bạn sử dụng card mạng khác (ví dụ ens18, eno1), bạn hãy thay đổi giá trị mặc định này.
    • UnitMode 0: Bạn thay đổi thành 1 nếu muốn vnstat tự động hiển thị đơn vị (KB, MB, GB) một cách linh hoạt thay vì mặc định là MiB/GiB.
    Tùy chỉnh UnitMode 0
    Tùy chỉnh UnitMode 0
    • MonthRotate 1: Xác định ngày trong tháng mà bộ đếm sẽ reset (mặc định là ngày 1).
    Tùy chỉnh MonthRotate 1
    Tùy chỉnh MonthRotate 1

    Xem thống kê tổng quan

    Để xem báo cáo tổng hợp nhanh, bạn chỉ cần gõ vnstat để xem tóm tắt cho card mạng mặc định:

    vnstat
    Xem thống kê tổng quan nhanh chóng
    Xem thống kê tổng quan nhanh chóng

    Kết quả sẽ hiển thị tổng dung lượng đã dùng của tháng hiện tại, ước tính cho cả tháng, cùng với dữ liệu của hôm nay và hôm qua với các thông số cụ thể là:

    • RX: Lưu lượng tải xuống (Download).
    • TX: Lưu lượng tải lên (Upload).
    • Total: Tổng lưu lượng đã sử dụng.
    • Avg. rate: Tốc độ truyền tải trung bình.

    Xem thống kê theo thời gian cụ thể

    Người quản trị có thể lọc báo cáo theo các khung thời gian để dễ dàng quản lý:

    Xem theo giờ: Giúp phát hiện các khung giờ cao điểm trong ngày.

    vnstat -h
    Xem thống kê theo giờ
    Xem thống kê theo giờ

    Xem theo ngày: Hiển thị lưu lượng sử dụng của từng ngày trong tháng (mặc định 30 ngày gần nhất).

    vnstat -d
    Xem thống kê theo ngày
    Xem thống kê theo ngày

    Xem theo tháng: Tổng hợp lưu lượng của các tháng trong năm.

    vnstat -m
    Xem thống kê theo tháng
    Xem thống kê theo tháng

    Xem Top 10 ngày có lượng traffic cao nhất

    vnstat -t
    Xem Top 10 ngày có lượng traffic cao nhất
    Xem Top 10 ngày có lượng traffic cao nhất

    Giám sát theo thời gian thực

    Giám sát theo thời gian thực là một tính năng hữu ích để bạn có một cái nhìn nhanh về tình trạng mạng hiện tại mà không cần cài thêm các công cụ phức tạp.

    Để tiến hành giám sát, bạn sử dụng cờ -l hoặc --live:

    vnstat -l -i eth0

    Thay eth0 bằng card mạng của bạn. Màn hình sẽ cập nhật liên tục, hiển thị:

    Kết quả hiển thị khi sử dụng cờ -l
    Kết quả hiển thị khi sử dụng cờ -l
    • rx: Tốc độ nhận dữ liệu (Download).
    • tx: Tốc độ truyền dữ liệu (Upload).
    • rx/s, tx/s: Số lượng gói tin (packets) nhận/truyền mỗi giây.

    Khi bạn nhấn Ctrl + C để dừng, vnstat sẽ đưa ra một bản tóm tắt về lượng dữ liệu đã được truyền trong suốt thời gian bạn theo dõi.

    Bản tóm tắt về lượng dữ liệu đã được truyền trong suốt thời gian bạn theo dõi.
    Bản tóm tắt về lượng dữ liệu đã được truyền trong suốt thời gian bạn theo dõi.

    Trực quan hóa dữ liệu

    Cú pháp cơ bản:

    vnstati -s -i eth0 -o /path/to/your/image.png

    Các ví dụ thực tế:

    • Tạo ảnh tổng hợp (Summary): Kết quả là một file ảnh tóm tắt băng thông theo giờ, ngày, tháng.
    vnstati -s -i eth0 -o ~/vnstat_summary.png
    • Tạo biểu đồ cột theo giờ (Hourly): Tạo biểu đồ sẽ giúp bạn xem giờ cao điểm sử dụng mạng trong ngày một cách trực quan hơn.
    vnstati -h -i eth0 -o ~/vnstat_hourly.png
    • Tạo biểu đồ cột theo ngày (Daily): Tạo biểu đồ cột theo ngày giúp bạn theo dõi xu hướng sử dụng băng thông trong tháng.
    vnstati -d -i eth0 -o ~/vnstat_daily.png
    • Tạo biểu đồ top ngày sử dụng nhiều nhất:
    vnstati -t -i eth0 -o ~/vnstat_topdays.png
    Tạo biểu đồ top ngày sử dụng nhiều nhất
    Tạo biểu đồ top ngày sử dụng nhiều nhất

    Các tùy chọn hữu ích khác

    Tùy chọnChức năngVí dụ sử dụng
    -i {interface}Chọn một card mạng cụ thể để truy vấn.vnstat -i ens18
    --jsonXuất kết quả dưới định dạng JSON, hữu ích cho script.vnstat --json
    -tr {giây}Tính toán lưu lượng trung bình trong một khoảng thời gian.vnstat -tr 10
    --onelineHiển thị kết quả tóm tắt trên một dòng duy nhất.vnstat --oneline
    --rebuildXây dựng lại database nếu bị lỗi.sudo vnstat --rebuild -i eth0

    Khi nào nên dùng vnstat, bmon/iftop và nethogs?

    • Dùng vnstat khi: Bạn cần xem thống kê lịch sử (dùng bao nhiêu data tháng này, ngày hôm qua,…) một cách nhanh chóng và hiệu quả. Công cụ này rất phù hợp để kiểm tra lịch sử sử dụng dữ liệu mạng theo từng thời điểm (ngày, tháng, hoặc từng giờ), giúp bạn dễ dàng kiểm soát tổng dung lượng đã sử dụng, phát hiện bất thường trong lưu lượng qua thời gian.
    • Dùng bmonhoặc iftopkhi: Bạn cần phân tích real-time chi tiết theo từng kết nối (server đang nói chuyện với IP nào?). Các công cụ này hiển thị tức thời tất cả các kết nối đang hoạt động, bao gồm thông tin về các IP server đang giao tiếp, lượng băng thông đang sử dụng cho từng kết nối.
    • Dùng nethogs khi: Bạn cần biết process/ứng dụng nào đang chiếm dụng băng thông. nethogs sẽ liệt kê và phân nhóm băng thông theo từng tiến trình cụ thể, giúp bạn dễ dàng kiểm soát, phát hiện các ứng dụng tiêu tốn tài nguyên mạng bất thường, hoặc hỗ trợ việc tối ưu hệ thống.
    Các trường hợp dùng vnstat, bmon/iftop và nethogs
    Các trường hợp dùng vnstat, bmon/iftop và nethogs

    Câu hỏi thường gặp

    vnstat có ảnh hưởng đến hiệu suất tài nguyên hệ thống không?

    vnstat sử dụng rất ít tài nguyên vì chỉ theo dõi lưu lượng tại lớp kernel mà không cần xử lý toàn bộ gói tin, cực kỳ phù hợp trên cả những hệ thống cấu hình thấp.

    vnstat có hỗ trợ giám sát nhiều card mạng cùng lúc không?

    Hoàn toàn có thể. Bạn chỉ cần khởi tạo database và theo dõi từng card mạng riêng biệt bằng tham số -i {interface}, ví dụ: vnstat -i eth0, vnstat -i ens18.

    Số liệu vnstat thu thập có được giữ lại sau khi khởi động lại hệ thống không?

    Có, vì vnstat lưu dữ liệu vào database trên ổ cứng, nên toàn bộ lịch sử sẽ được giữ nguyên kể cả sau khi server restart.

    Có thể tự động xuất báo cáo vnstat hằng ngày bằng script không?

    Hoàn toàn có thể. Bạn chỉ cần tạo cron job chạy lệnh xuất báo cáo (ví dụ: vnstat --oneline >> /path/to/log.txt) để lập nhật ký lưu lượng hằng ngày hoặc theo lịch trình tùy ý.

    Làm thế nào để reset dữ liệu thống kê nếu chuyển server/chuyển card mạng?

    Có thể sử dụng tùy chọn --rebuild hoặc xóa database cũ của giao diện mạng, sau đó khởi tạo database mới với lệnh sudo vnstat -u -i để bắt đầu quá trình thống kê lại từ đầu.

    vnstat là công cụ giám sát, kiểm tra băng thông tiện lợi, trực quan trên mọi hệ thống Linux, cung cấp một cái nhìn tổng thể phù hợp cả trên các server cấu hình thấp. Hy vọng qua hướng dẫn này, bạn đã nắm vững cách cài đặt vnstat và đọc các thông số băng thông theo giờ, ngày và tháng. Để tìm hiểu thêm các công cụ giám sát hệ thống và lệnh Linux khác, mời bạn tham khảo các bài viết dưới đây:

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng dmidecode trên Linux để xem thông tin phần cứng chính xác và nhanh chóng
    Cách dùng dmidecode trên Linux để xem thông tin phần cứng chính xác và nhanh chóng

    dmidecode là một công cụ dòng lệnh trên Linux dùng để đọc và hiển thị thông tin phần cứng máy tính từ bảng DMI hoặc SMBIOS cung cấp bởi BIOS, giúp kiểm tra chi tiết như nhà sản xuất, model, số serial, BIOS, CPU, RAM mà không cần mở máy. Trong bài viết này, mình…

    27/02/2026

    Lệnh partx Linux là gì? 7 ví dụ ứng dụng thực tế của lệnh partx
    Lệnh partx Linux là gì? 7 ví dụ ứng dụng thực tế của lệnh partx

    Lệnh partx Linux là một công cụ dòng lệnh thuộc gói util-linux, được sử dụng để thêm, xóa hoặc liệt kê các phân vùng của thiết bị đĩa vào bảng phân vùng của hệ thống mà không cần khởi động lại hoặc gắn lại thiết bị. Trong bài viết này, mình sẽ hướng dẫn bạn…

    27/02/2026

    Hướng dẫn 7 cách kiểm tra CPU trên Linux chính xác và nhanh chóng
    Hướng dẫn 7 cách kiểm tra CPU trên Linux chính xác và nhanh chóng

    Trong môi trường quản trị Linux, việc kiểm tra tốc độ xung nhịp CPU là một thao tác cần thiết giúp người dùng đánh giá khả năng chịu tải, phát hiện các điểm nghẽn hiệu suất  và hỗ trợ tối ưu trong quá trình tối ưu hóa hoặc khắc phục sự cố phần cứng. Trong…

    27/02/2026

    Hướng dẫn xóa bộ nhớ Cache, bộ đệm và Swap trong Linux nhanh chóng, chi tiết
    Hướng dẫn xóa bộ nhớ Cache, bộ đệm và Swap trong Linux nhanh chóng, chi tiết

    Trong Linux, bộ nhớ cache là nơi lưu trữ tạm thời dữ liệu và các file đã truy cập gần đây để giảm thời gian truy xuất ở lần tiếp theo. Tuy nhiên, theo thời gian, bộ nhớ cache có thể chiếm dụng quá nhiều RAM, đặc biệt trên các máy chủ có uptime dài…

    27/02/2026

    linux

    lenh

    text