Lệnh netstat trong cmd là một công cụ dòng lệnh mạnh mẽ có sẵn trên Windows và các hệ điều hành khác như Linux, macOS. Nó cho phép bạn xem tất cả các kết nối mạng đang hoạt động, các cổng đang lắng nghe, bảng định tuyến và thống kê giao thức. Đối với quản trị viên hệ thống, chuyên viên bảo mật và người dùng yêu thích kỹ thuật, lệnh netstat là phương tiện đầu tiên để chẩn đoán sự cố mạng, phát hiện kết nối bất thường hoặc kiểm tra ứng dụng nào đang chiếm giữ một cổng nhất định. Hiểu sâu về cú pháp và các tham số của nó sẽ giúp bạn xử lý nhiều tình huống thực tế một cách nhanh chóng và chính xác.
Lệnh netstat trong cmd là gì? Giải thích bản chất và cách hoạt động

Netstat viết tắt của “network statistics” – thống kê mạng. Khi bạn gõ netstat trong Command Prompt (cmd), hệ thống sẽ đọc các bảng dữ liệu mạng do kernel quản lý và hiển thị chúng ra màn hình dưới dạng văn bản. Dữ liệu này bao gồm: địa chỉ IP nguồn và đích, cổng, trạng thái kết nối (như ESTABLISHED, LISTENING, TIME_WAIT), và cả PID của tiến trình sở hữu kết nối đó.
Không giống các công cụ đồ họa, lệnh netstat chạy hoàn toàn dựa trên dòng lệnh, cho phép bạn kết hợp với các lệnh khác (findstr, more) để lọc và xử lý dữ liệu hàng loạt. Đây là lý do nó vẫn được ưa chuộng trong môi trường server, nơi giao diện đồ họa thường bị tắt để tiết kiệm tài nguyên.
Phân loại các tham số chính của lệnh netstat trong cmd

Lệnh netstat có nhiều tham số. v.
Lợi ích và hạn chế khi sử dụng lệnh netstat trong cmd

Lợi ích vượt trội
- Kiểm soát toàn bộ kết nối mạng tức thời: Chỉ với một dòng lệnh, bạn thấy được máy tính đang kết nối tới đâu, cổng nào đang mở.
- Phát hiện kết nối lạ hoặc phần mềm gián điệp: Kết hợp tham số -o và -b (trên Windows) để xem đường dẫn file thực thi, từ đó tìm ra malware đang gọi ra ngoài.
- Chẩn đoán xung đột cổng: Khi một ứng dụng báo lỗi “port already in use”, bạn dùng netstat -aon | findstr:
để biết PID và dùng Task Manager kill tiến trình đó. - Hoạt động không cần giao diện đồ họa: Tiết kiệm tài nguyên, dễ dàng chạy trong script, remote desktop hay SSH.
- Chỉ hiển thị trạng thái tại thời điểm chạy: Không có tính năng theo dõi lịch sử, muốn ghi log bạn phải kết hợp với lệnh > output.txt.
- Không phân tích lưu lượng chi tiết: netstat không cho biết băng thông, nội dung gói tin (cần dùng Wireshark hoặc tcpdump).
- Cần quyền Administrator để xem được một số thông tin nâng cao như tên ứng dụng (-b) hoặc địa chỉ cổng dưới 1024.
Hạn chế cần lưu ý
So sánh lệnh netstat với các công cụ mạng khác

| Công cụ | Chức năng chính | Khi nào nên dùng |
|---|---|---|
| netstat | Xem kết nối, cổng, thống kê giao thức | Kiểm tra nhanh kết nối, tìm tiến trình chiếm cổng |
| ping | Kiểm tra khả năng kết nối và độ trễ | Xác định host có alive không |
| tracert | Xem đường đi của gói tin | Xác định điểm mất kết nối giữa các router |
| nslookup | Tra cứu DNS | Kiểm tra tên miền có trỏ đúng IP không |
| Resource Monitor (Windows) | Xem kết nối mạng đồ họa | Khi cần thông tin trực quan và real-time |
Netstat giữ vị trí đặc biệt vì nó cung cấp danh sách đầy đủ các kết nối dạng text, dễ dàng copy-paste hoặc đưa vào script xử lý. Đây là lợi thế lớn khi làm việc với các hệ thống server không có GUI.
Hướng dẫn chi tiết các ứng dụng thực tế của lệnh netstat trong cmd

1. Xem tất cả các cổng TCP và UDP đang lắng nghe
Gõ lệnh: netstat -an | find "LISTENING". Kết quả sẽ liệt kê các cổng mà máy tính đang chờ kết nối. Với Windows, khi thấy cổng 3389 (RDP) đang LISTENING, tức là Remote Desktop đang bật. Ví dụ thực tế: kiểm tra xem web server local (localhost:8080) có hoạt động không, bạn tìm dòng 0.0.0.0:8080 hoặc [::]:8080 với trạng thái LISTENING.
2. Tìm ứng dụng nào đang dùng một cổng cụ thể
Giả sử bạn biết trình duyệt đang dùng cổng 34567, hãy chạy netstat -ano | findstr:34567. Cột bên phải hiển thị PID (Process ID). Mở Task Manager, thêm cột PID để xác định tên tiến trình. Nếu không thấy PID trong Task Manager, đánh dấu “Show PID of all processes” trong Details tab. Trên Windows 10/11,
Mở cmd với quyền admin và gõ netstat -an | find "LISTENING". Tất cả các cổng có trạng thái LISTENING là đang ở chế độ chờ kết nối.
Chạy netstat -ano | findstr:3389 (ví dụ cổng 3389). Lấy PID ở cột cuối, sau đó gõ tasklist | findstr PID để biết tên tiến trình. Hoặc bạn vào Task Manager, tab Details, tìm PID đó và xem tên ứng dụng.
Có thể dùng netstat để kill một kết nối không?
Netstat không có chức năng kill kết nối trực tiếp. Bạn cần lấy PID từ netstat, sau đó dùng lệnh taskkill /PID [số] /F để buộc kết thúc tiến trình. Lưu ý: nếu kill tiến trình hệ thống, máy tính có thể gặp sự cố.
Sự khác biệt giữa netstat -a và netstat -an là gì?
Lệnh netstat -a hiển thị tất cả kết nối và cổng lắng nghe, nhưng cố gắng phân giải tên host và tên cổng (ví dụ: 0.0.0.0:http). Lệnh netstat -an hiển thị mọi thứ dưới dạng số, không phân giải, do đó chạy nhanh hơn và dễ lọc với findstr.
Tại sao tôi thấy nhiều kết nối TIME_WAIT có đáng lo ngại không?
Không. TIME_WAIT là trạng thái tạm thời sau khi đóng kết nối TCP để đảm bảo các gói tin trễ không gây nhiễu. Số lượng lớn có thể xuất hiện khi bạn chạy các ứng dụng web server, proxy hoặc khi tải nhiều trang web. Nếu nó quá cao (hàng nghìn) và kéo dài, có thể do ứng dụng không đóng socket đúng cách, nhưng đa số là bình thường.
Kết luận
Lệnh netstat trong cmd là một trong những công cụ dòng lệnh quan trọng nhất mà bất kỳ ai làm việc với máy tính đều nên biết. Nó không chỉ giúp bạn kiểm tra nhanh tình trạng mạng, phát hiện kết nối bất thường, mà còn hỗ trợ xử lý các lỗi xung đột cổng một cách hiệu quả. Bằng cách kết hợp các tham số như -a, -n, -o, -b và dùng findstr để lọc, bạn có thể kiểm soát hoàn toàn các kết nối ra vào máy tính của mình. Hãy thực hành thường xuyên với các tình huống thực tế như tìm cổng web server, phát hiện malware hoặc theo dõi băng thông để thành thạo lệnh này. Với kiến thức nền tảng từ bài viết, bạn đã sẵn sàng tự tin sử dụng netstat trong công việc quản trị hệ thống và bảo mật thông tin hàng ngày.







