Nâng cấp ‘vũ khí’ Network trên Linux: Trải nghiệm bộ ba gping, bandwhich và doggo

Network tutorial - IT technology blog
Network tutorial - IT technology blog

Khi những dòng lệnh cũ không còn theo kịp tốc độ của bạn

Hãy tưởng tượng sếp vừa gọi điện giục: “Mạng văn phòng sao rùa bò thế em?”. Theo phản xạ, bạn gõ ngay ping 8.8.8.8. Một danh sách text dài dằng dặc bắt đầu cuộn trên màn hình. Bạn căng mắt nhìn để tìm xem có dòng nào time vọt lên cao không.

Thực tế, cách làm này rất mệt mỏi. Những đợt lag chỉ kéo dài 1-2 giây (micro-spikes) cực kỳ khó phát hiện nếu chỉ nhìn chữ. Tương tự, khi server bỗng dưng nghẽn mạng, iftop chỉ cho bạn biết IP nào đang dùng nhiều dung lượng, chứ không chỉ mặt đặt tên được chính xác ứng dụng nào đang “bào” băng thông của bạn.

Các công cụ kinh điển như ping, dig, hay netstat ra đời từ thời kỳ màn hình đơn sắc. Chúng ưu tiên sự gọn nhẹ nhưng thiếu tính trực quan. Để xử lý sự cố nhanh hơn, mình đã chuyển hẳn sang bộ ba viết bằng Rust: gping, bandwhichdoggo.

Tại sao bạn nên làm mới bộ công cụ của mình?

Khi mạng chập chờn, lỗi thường nằm ở ba điểm mù mà công cụ cũ khó diễn tả:

  • Biến động độ trễ (Jitter): Ping vẫn phản hồi nhưng trồi sụt thất thường.
  • Tiến trình chạy ngầm: Một bản update hệ thống hoặc script backup đang chiếm dụng đường truyền.
  • Phản hồi DNS chậm: Tên miền mất 2-3 giây để phân giải, khiến ứng dụng web bị treo.

Dưới đây là cách mình dùng bộ ba này để “bắt bệnh” hệ thống chỉ trong vài giây.

1. gping – Trực quan hóa độ trễ bằng biểu đồ thời gian thực

Thay vì đọc số, gping vẽ biểu đồ ngay trong terminal. Bạn sẽ thấy rõ các đỉnh nhọn khi mạng bị lag. Mình thường dùng nó để so sánh độ trễ giữa các node để khoanh vùng lỗi do nhà mạng hay do thiết bị nội bộ.

Cài đặt nhanh

# Dùng Homebrew (phổ biến nhất cho Linux/macOS)
brew install gping

# Hoặc dùng cargo
cargo install gping

Kịch bản thực chiến

Để biết mạng chậm do cáp quang biển hay do modem nhà mình, hãy thử lệnh này:

gping 1.1.1.1 google.com 192.168.1.1

Màn hình sẽ hiện 3 đường biểu đồ màu sắc khác nhau. Nếu cả 3 đường cùng vọt lên, chắc chắn modem hoặc dây cáp của bạn có vấn đề. Nếu chỉ google.com bị vọt, lỗi nằm ở đường truyền quốc tế.

2. bandwhich – Soi tận mặt ứng dụng đang chiếm băng thông

bandwhich là công cụ yêu thích của mình khi cần tìm “hung thủ” ngốn mạng. Khác với nload hay iftop, nó hiển thị chi tiết theo tên Process (tiến trình), Connection và IP đích.

Cách cài đặt

# Cài qua cargo
cargo install bandwhich

Kinh nghiệm sử dụng

Khi server bỗng dưng load cao bất thường, bạn hãy chạy:

sudo bandwhich

Giao diện sẽ chia làm 3 cột rõ ràng. Bạn có thể thấy ngay ông thần rsync đang âm thầm đẩy dữ liệu đi với tốc độ 50MB/s, hoặc một con bot Python đang thực hiện hàng nghìn request ra ngoài. Lưu ý: Bạn bắt buộc phải dùng sudo để công cụ có quyền truy cập vào stack mạng của hệ thống.

3. doggo – DNS Client hiện đại và sạch sẽ

Nếu bạn thấy dig quá rườm rà với những mảng text dài ngoằng, doggo chính là câu trả lời. Nó hỗ trợ màu sắc, giao diện dễ đọc và đặc biệt là DoH (DNS over HTTPS) – một tiêu chuẩn bảo mật hiện đại.

Cài đặt

go install github.com/mr-karan/doggo/cmd/doggo@latest

Mẹo dùng doggo hiệu quả

Để kiểm tra bản ghi MX (Mail Server) của một domain, bạn chỉ cần gõ:

doggo itfromzero.com MX --human

Kết quả trả về sẽ cực kỳ gọn gàng. Một tính năng mình rất thích là khả năng kiểm tra DNS từ nhiều server khác nhau cùng lúc để xem record đã cập nhật xong chưa:

doggo google.com @8.8.8.8 @1.1.1.1

Nếu bạn cần viết script giám sát, hãy thêm flag --json. Dữ liệu trả về sẽ cực kỳ chuẩn mực để các công cụ khác có thể xử lý tiếp.

Quy trình xử lý sự cố trong 60 giây

Thay vì loay hoay với hàng chục lệnh, mình thường áp dụng workflow sau khi mạng có dấu hiệu “biểu tình”:

  1. Bật gping: Kiểm tra độ ổn định. Nếu biểu đồ răng cưa liên tục, xác định lỗi ở đường truyền vật lý.
  2. Mở bandwhich: Tìm xem có app nào đang chạy ngầm chiếm hết băng thông không. Nếu thấy process lạ, dùng kill -9 để giải phóng ngay lập tức.
  3. Dùng doggo: Kiểm tra xem các dịch vụ chậm có phải do DNS phân giải sai IP hoặc server DNS đang phản hồi quá chậm (trên 500ms) hay không.

Một lưu ý nhỏ: bandwhich sẽ tiêu tốn một chút tài nguyên CPU nếu server của bạn đang gánh lưu lượng khổng lồ (vài Gbps). Vì vậy, chỉ nên bật nó lên khi cần kiểm tra và tắt đi ngay sau đó.

Những công cụ này không thay thế hoàn toàn các lệnh Linux truyền thống. Tuy nhiên, chúng giúp bạn tiết kiệm tới 70% thời gian quan sát. Việc nhìn vào một biểu đồ trực quan luôn mang lại hiệu quả cao hơn nhiều so với việc ngồi căng mắt đọc từng dòng text khô khan trong môi trường áp lực cao.

Share: