Trên linux có các câu lệnh anh em vẫn hay dùng để debug network là ss, netstat, lsof. Nhưng lúc on-call, đọc một màn hình output dài rồi tự lọc bằng mắt khá là bất tiện, thế là mình nghĩ giờ có công cụ nào chỉ cần giúp mình trả lời ngay port này process/app nào đang dùng không cần phải grep, không cần nhớ flag.

Snitch là tool làm được điều đó nó sẽ cho biết process nào đang mở kết nối, và xử lý sao cho nhanh mà không bấm nhầm, nhìn connection theo dạng bảng/TUI, lọc nhanh, ra quyết định nhanh.
Snitch là gì và dùng trong trường hợp nào?
Snitch là công cụ giúp anh em thấy network connections của máy một cách trực quan hơn
Nó vẫn xoay quanh mấy thứ quen thuộc:
- Port này đang LISTEN hay không? thằng nào đang giữ port đó?
- Process này có đang mở nhiều connection không?
- Connection đang ở trạng thái gì? (LISTEN / ESTABLISHED /…)
Khác biệt là Snitch:
- Gom mấy thông tin đó vào một bảng rõ ràng
- Nó có chế độ TUI xem realtime
- Không cần nhớ flag hay phải grep thủ công
Quan trọng là anh em đừng hiểu nhầm:
- Snitch không đo traffic, không thay iftop hay nethogs
- Snitch không phải firewall
- Snitch chỉ giúp anh nhìn nhanh giữa port – connection – process
Nếu bạn hay SSH vào server để debug network hoặc process, Snitch là kiểu tools mì ăn liền cho anh em.
Cài đặt Snitch
Cách 1: Cài bằng Go
go install github.com/karol-broda/snitch@latest
snitch --help
Cách 2: Dùng binary release
Tải binary đúng OS/arch từ release của repo, rồi:
chmod +x snitch
sudo mv snitch /usr/local/bin/
snitch --help
Cách 3: Homebrew (macOS / Linux)
brew install karol-broda/tap/snitch
snitch --help
Lưu ý về quyền hạn
- Linux: để thấy đầy đủ mapping process và socket, thường cần
roothoặcCAP_NET_ADMIN - MacOS: đôi lúc cần
sudo
Không đủ quyền vẫn chạy được, nhưng có thể thiếu process name/PID trong một số dòng.
Cách dùng cơ bản
Snitch có nhiều options, bạn sử dụng 2 mode này là chính.
TUI realtime
Mode này Anh em sử dụng khi chưa biết vấn đề nằm ở đâu?
snitch
Mở lên là thấy ngay: port nào đang mở, process nào đang giữ, connection nào đang active.
One-shot table
snitch ls
In ra bảng gọn để soi nhanh, filter, hoặc copy lại xem cho kỹ.
Snitch giúp mình debug nhanh hơn thế nào?
Tình huống 1: service không start vì port đã bị chiếm
Case kinh điển rất hay gặp: deploy xong, service restart loop. Log:
bind: address already in use
Câu hỏi lúc đó rất đơn giản: Port này đang bị thằng nào chiếm?.
Dùng Snitch
snitch
Mình không filter trước. Màn hình hiện ra danh sách socket + process, mình nhìn vào cột port và state là thấy ngay:
java 14233 tcp LISTEN 0.0.0.0 8080
-> đúng port, đúng process. Không cần grep, không cần nhớ flag.
Trước khi kill, mình nhìn thêm một bước: process này có connection ESTABLISHED nào không?
Trong Snitch, mình thấy:
- không có client nào đang kết nối
- chỉ giữ socket LISTEN
Thấy rõ ngay: giữ port nhưng không phục vụ gì.
Xử lý ngay, trong Snitch:
- chọn process -> kill (có confirm) -> restart service.
Service lên lại, xong việc. Không phải copy PID, không phải đổi tab, không phải chạy thêm lệnh kiểm tra.
Tình huống 2: nghi ngờ outbound connection bất thường
Lần khác, service không chết nhưng response chậm bất thường. Chưa tới mức bật tracing hay profiler, mình chỉ muốn biết nhanh:
- Có process nào đang mở quá nhiều connection outbound không?
Ở đây mình không cần bandwidth, chỉ cần count connection.
snitch ls -e
Mình nhìn thấy một PID có rất nhiều dòng cùng remote :443:
node 23145 tcp ESTABLISHED 10.0.0.5:52341 -> 34.117.x.x:443
node 23145 tcp ESTABLISHED 10.0.0.5:52342 -> 34.117.x.x:443
node 23145 tcp ESTABLISHED 10.0.0.5:52343 -> 34.117.x.x:443
...
Không cần đếm chính xác, chỉ cần nhìn là đủ hiểu: process này đang mở outbound connection nhiều bất thường.
Ngay lúc đó mình đủ thông tin để bước tiếp theo:
- kiểm tra code (pool/keep-alive/retry)
- check config upstream
- lúc này mới bật tool traffic như
iftop/nethogs
Snitch không thay các tool kia. Nó giúp mình biết có đáng bật hay không.
Tình huống 3: debug nhanh “ai đang nói chuyện với ai”
Có những lúc mình không có một lỗi cụ thể, chỉ thấy hệ thống có gì đó không ổn. Lúc này mình hay mở Snitch ở chế độ TUI:
snitch
Rồi:
- Lọc theo protocol (TCP/UDP)
- Nhìn state (LISTEN/ESTABLISHED)
- Khoanh vùng theo process name/PID
Kết
Snitch không thay thế được mấy tool chuyên sâu kia đâu, nhưng nó giúp anh em tiện debug mấy việc lặt vặt. Lúc đang gấp, thay vì phải nhớ flag hay mò log, bật Snitch lên cái là thấy ngay port nào kẹt, process nào đang giữ. Đơn giản, được việc, anh em dùng thử nhé.







