Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn dùng nethogs để giám sát lưu lượng mạng trên từng process

    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

    NetHogs là một tiện ích dòng lệnh mã nguồn mở giúp quản trị viên theo dõi từng tiến trình đang sử dụng băng thông thời gian thực, mang lại góc nhìn trực quan và chi tiết về hoạt động mạng. Trong bài viết này, mình sẽ giúp bạn hiểu rõ khái niệm, tính năng nổi bật và cách vận hành NetHogs để chẩn đoán và khắc phục sự cố liên quan đến hiệu suất mạng.

    Những điểm chính

    • Khái niệm NetHogs: Biết được NetHogs là gì và cách công cụ này giúp bạn xác định chính xác ứng dụng nào đang tiêu tốn nhiều băng thông mạng.
    • Nguyên lý hoạt động: Hiểu cách NetHogs liên kết gói tin với tiến trình để kiểm soát lưu lượng hệ thống một cách minh bạch và hiệu quả.
    • Tính năng nổi bật: Nắm rõ các thế mạnh như giám sát thời gian thực và hỗ trợ đa giao diện để tối ưu hóa việc chẩn đoán sự cố mạng.
    • Cú pháp và tùy chọn: Thành thạo các tham số lệnh giúp bạn linh hoạt tinh chỉnh đơn vị hiển thị, độ trễ và cách thức ghi log dữ liệu.
    • Cách dùng NetHogs: Biết cách cài đặt và thực thi lệnh để theo dõi chi tiết lưu lượng tải lên/tải xuống của từng tiến trình cụ thể.
    • Các công cụ thay thế: Khám phá thêm các giải pháp giám sát băng thông hữu ích khác giúp bạn quản trị hạ tầng mạng toàn diện hơn.
    • Giải đáp thắc mắc (FAQ): Nhận được lời giải đáp về khả năng xuất báo cáo, giám sát nhiều card mạng và tính ổn định của NetHogs trên môi trường ảo hóa.

    NetHogs là gì?

    NetHogs là một công cụ giám sát mạng mã nguồn mở chạy trên dòng lệnh, dành cho các hệ điều hành Linux và tương tự Unix. Chức năng chính của Nethogs là hiển thị băng thông mạng đang được sử dụng bởi từng tiến trình (process) hoặc ứng dụng riêng lẻ trên hệ thống, thay vì theo giao thức hoặc mạng con như các công cụ thông thường.

    Điều này giúp quản trị viên hệ thống nhanh chóng xác định chính xác chương trình hoặc dịch vụ nào đang “ngốn” băng thông mà không cần tra cứu ID tiến trình (PID) một cách thủ công. Nethogs giúp người dùng dễ dàng xác định ứng dụng nào đang tiêu thụ nhiều băng thông nhất trong thời gian thực, từ đó hỗ trợ việc chẩn đoán và khắc phục sự cố liên quan đến hiệu suất mạng.

    NetHogs có nhiệm vụ việc giám sát băng thông mạng theo thời gian thực trên Linux.
    NetHogs có nhiệm vụ việc giám sát băng thông mạng theo thời gian thực trên Linux.

    Cách Nethogs hoạt động

    Nethogs hoạt động bằng cách giám sát lưu lượng truy cập mạng ở cấp độ giao diện và sau đó liên kết các gói tin (packets) với các tiến trình đang chạy trên hệ thống.

    1. Nethogs sử dụng thư viện libpcap để “nghe” (sniff) các gói tin đi qua các giao diện mạng.
    2. Khi một gói tin được bắt giữ, Nethogs sẽ kiểm tra thông tin về cổng (port) và địa chỉ IP của gói tin đó.
    3. Sau đó, Nethogs truy vấn hệ điều hành để tìm ra tiến trình nào đang sử dụng cổng và địa chỉ IP đó, từ đó xác định được ứng dụng gửi hoặc nhận gói tin.
    4. Bằng cách tổng hợp dữ liệu này, Nethogs có thể hiển thị lượng băng thông tiêu thụ cho từng tiến trình một cách riêng biệt.

    Tính năng nổi bật của Nethogs

    Nethogs cung cấp nhiều tính năng giúp người dùng quản lý và giám sát băng thông mạng hiệu quả:

    • Giám sát băng thông theo tiến trình: Nethogs hiển thị tốc độ tải lên (upload) và tải xuống (download) của từng tiến trình đang chạy trên hệ thống. Điều này cho phép người dùng biết chính xác ứng dụng nào đang sử dụng tài nguyên mạng.
    • Hiển thị thời gian thực: Nethogs cung cấp dữ liệu cập nhật liên tục, cho phép người dùng theo dõi biến động lưu lượng mạng ngay lập tức.
    • Hỗ trợ giao diện dòng lệnh: Người dùng có thể dễ dàng chạy Nethogs từ Terminal, rất tiện lợi cho quản trị viên máy chủ hoặc những người làm việc trong môi trường dòng lệnh.
    • Phát hiện nguyên nhân tiêu thụ băng thông: Bằng cách hiển thị rõ ràng ứng dụng nào đang chiếm dụng mạng, Nethogs giúp người dùng nhanh chóng xác định các tiến trình bất thường (ví dụ: phần mềm độc hại, cập nhật ngầm, tải xuống lớn) và đưa ra biện pháp xử lý kịp thời.
    • Hỗ trợ nhiều giao diện mạng: Nethogs có khả năng giám sát lưu lượng trên nhiều giao diện mạng khác nhau (ví dụ: ethe, wlane), cho phép người dùng theo dõi toàn bộ hoạt động mạng của hệ thống.
    • Sắp xếp và lọc dữ liệu: Nethogs cho phép người dùng sắp xếp các tiến trình theo mức độ sử dụng băng thông hoặc lọc theo các tiêu chí khác, giúp tập trung vào các ứng dụng quan trọng.
    Tính năng nổi bật của Nethogs
    Tính năng nổi bật của Nethogs

    Cú pháp và các tùy chọn phổ biến của lệnh NetHogs

    Cú pháp tổng quát của lệnh như sau:

    sudo nethogs [tùy chọn] [tên_interface]

    Trong đó:

    • sudo: Quyền quản trị tối cao là bắt buộc vì nethogs cần truy cập trực tiếp vào các giao diện mạng và bảng tiến trình của hệ thống.
    • [tùy chọn]: Các tham số bổ sung để thay đổi cách hiển thị hoặc hành vi của lệnh.
    • [tên_interface]: Tên của card mạng bạn muốn theo dõi (ví dụ: eth0, wlan0, enp0s3). Nếu bỏ trống, lệnh sẽ mặc định theo dõi tất cả các giao diện mạng đang hoạt động.

    Dưới đây là một số tham số phổ biến của lệnh NetHogs giúp người dùng tinh chỉnh giao diện hiển thị và cách thức hoạt động của công cụ để phù hợp hơn với nhu cầu giám sát cụ thể:

    Tham sốCú pháp ví dụChức năng
    -d$nethogs -d 5Thiết lập độ trễ cho mỗi lần làm mới màn hình, tính bằng giây. Ví dụ, tùy chọn này sẽ khiến NetHogs cập nhật thông tin mỗi 5 giây. Giá trị mặc định là 2 giây.
    -V$nethogs -VYêu cầu NetHogs hiển thị thông tin phiên bản (version) hiện tại của công cụ và thoát ngay lập tức.
    -h$nethogs -hHiển thị một danh sách các lệnh và tham số sử dụng có sẵn, cung cấp một tài liệu tham khảo nhanh cho người dùng.
    -p$nethogs -pKích hoạt chế độ promiscuous theo dõi lưu lượng mạng mà không cần card mạng phải trực tiếp nhận gói tin đó (không khuyến khích dùng thường xuyên).
    -tsudo nethogs -tChế độ truy vết (tracemode): Hiển thị danh sách kết nối theo dạng dòng nối tiếp, không xóa màn hình (thích hợp để ghi log).
    -vsudo nethogs -v 3Thay đổi đơn vị đo lường: 0 = KB/s, 1 = tổng KB, 2 = tổng B, 3 = tổng MB.
    -csudo nethogs -c 10Giới hạn số lần cập nhật. Sau khi cập nhật đủ số lần (ví dụ 10 lần), lệnh sẽ tự thoát.
    -asudo nethogs -aTheo dõi cả các thiết bị không hiển thị hoặc các thiết bị ảo/loopback.

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

    nethogs thường không được cài đặt sẵn, nhưng bạn hoàn toàn có thể cài đặt nethogs một cách dễ dàng với quyền root hoặc sudo:

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

    Hoặc trên các phiên bản mới hơn:

    sudo dnf install nethogs

    Bước 2: Khởi chạy và quan sát

    Để bắt đầu, bạn chỉ cần chạy lệnh nethogs. Tuy nhiên, cách tốt nhất là chỉ định rõ card mạng bạn muốn theo dõi.

    # Lệnh này cần quyền sudo để có thể giám sát traffic mạng
    sudo nethogs eth0

    Bạn hãy thay eth0 bằng tên card mạng thực tế của bạn, ví dụ: ens18, eno1,… Ngay sau đó, nethogs sẽ hiển thị một giao diện cập nhật theo thời gian thực, liệt kê các process đang sử dụng mạng.

    Bước 3: Phân tích kết quả

    Giao diện của nethogs rất trực quan
    Giao diện của nethogs rất trực quan

    Giao diện của nethogs rất trực quan, dưới đây là ý nghĩa của các cột chính:

    • PID: Process ID – Mã số định danh của tiến trình, là manh mối quan trọng nhất để bạn điều tra sâu hơn.
    • USER: Người dùng đã khởi chạy tiến trình đó (ví dụ: root, nginx, mysql).
    • PROGRAM: Tên của chương trình và các tham số của nó. Cột này cho bạn biết chính xác ứng dụng nào đang gây ra traffic.
    • DEV: Device – Card mạng mà traffic đang đi qua (ví dụ: eth0).
    • SENT: Lượng traffic gửi đi từ server của bạn (Upload), tính bằng KB/giây.
    • RECEIVED: Lượng traffic nhận vào server của bạn (Download), tính bằng KB/giây.

    Khi nethogs đang chạy, bạn có thể sử dụng các phím tắt sau để tương tác:

    • s: Sắp xếp danh sách theo lượng traffic SENT (gửi đi), giúp bạn tìm ra process nào đang upload nhiều nhất.
    • r: Sắp xếp danh sách theo lượng traffic RECEIVED (nhận vào), giúp bạn tìm ra process nào đang download nhiều nhất.
    • m: Chuyển đổi đơn vị hiển thị giữa KB/s, KB, B, và MB.
    • q: Thoát khỏi nethogs.

    Các công cụ giám sát băng thông mạng hữu ích khác

    nethogs là công cụ xác định băng thông theo process rất hữu ích, nhưng để có thể giám sát một cách tổng quan, bạn có thể kết hợp với:

    • iftop: Công cụ này hiển thị băng thông theo kết nối (giữa IP nguồn và IP đích).
    • vnstat: Cung cấp thống kê lịch sử sử dụng băng thông theo ngày, tháng.
    • netstat hoặc ss (Socket Stats): Được sử dụng để phân tích và hiển thị thông tin chi tiết về các kết nối mạng, sockets và bảng định tuyến, nhưng không chuyên về giám sát băng thông thời gian thực.
    • top: Công cụ để theo dõi các tiến trình đang hoạt động, nhưng chủ yếu tập trung vào CPU và bộ nhớ, không cung cấp chi tiết về băng thông.
    • iptraf-ng: Một tiện ích giám sát mạng toàn diện trên giao diện lệnh, cung cấp thông tin chi tiết về lưu lượng IP, thống kê giao diện,…
    • darkstat: Một công cụ phân tích lưu lượng mạng chạy nền, thu thập dữ liệu trong thời gian dài và trình bày kết quả qua một giao diện web.
    • bandwhich: Một công cụ hiện đại khác với mục tiêu tương tự NetHogs, giúp hiển thị việc sử dụng băng thông theo tiến trình, kết nối và tên DNS từ xa.
    • gnethogsnethogs-qt: Đây là các giao diện đồ họa (GUI) được xây dựng dựa trên NetHogs, mang lại trải nghiệm thân thiện hơn cho những người dùng không quen thuộc với dòng lệnh.
    Darkstat là công cụ giám sát băng thông mạng hữu ích
    Darkstat là công cụ giám sát băng thông mạng hữu ích (Nguồn: Internet)

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

    NetHogs có hỗ trợ giám sát băng thông trên nhiều interface mạng cùng lúc không?

    NetHogs có thể giám sát song song nhiều card mạng bằng cách liệt kê tên các interface khi chạy lệnh, ví dụ:
    sudo nethogs eth0 wlan0
    Công cụ sẽ hiển thị lưu lượng mạng theo từng tiến trình trên cả các interface này trong cùng một phiên làm việc.

    Có thể xuất báo cáo hoặc log dữ liệu lưu lượng từ NetHogs ra file để phân tích sau không?

    NetHogs chưa hỗ trợ xuất báo cáo chi tiết dưới dạng file log một cách trực tiếp như các công cụ chuyên nghiệp khác. Tuy nhiên, bạn vẫn có thể kết hợp lệnh xuất đầu ra từ cửa sổ terminal sang file text để ghi lại các thông tin theo thời gian thực nếu cần.

    NetHogs vận hành ổn định trên môi trường ảo hóa như VPS/KVM hay cần cấu hình bổ sung nào đặc biệt?

    NetHogs hoạt động tốt trên hầu hết các môi trường VPS/KVM khi server sử dụng Linux và cấp quyền root đủ để truy cập vào thông tin /proc. Không cần cấu hình đặc biệt, chỉ cần đảm bảo card mạng đã nhận diện chính xác (thường là eth0, ens18…).

    Nethogs là công cụ hiệu quả giúp bạn quản lý băng thông chi tiết theo từng tiến trình đang chạy trên Linux. Qua các bước cài đặt và lệnh thực thi đã hướng dẫn, bạn có thể xác định chính xác ứng dụng nào đang chiếm dụng tài nguyên mạng và xử lý sự cố mạng nhanh chóng. Để tìm hiểu thêm các câu lệnh quản trị hệ thống khác, bạn có thể tham khảo một số bài viết sau:

    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