Hướng dẫn chi tiết lệnh netstat trong cmd: Kiểm tra cổng, kết nối mạng và khắc phục sự cố

lệnh netstat trong cmd

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

lệnh netstat trong cmd - Hình 5

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 đó.

Xem thêm:  Hướng dẫn chi tiết cách sử dụng device settings để tối ưu thiết bị của bạn

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 trong cmd - Hình 4

Lệnh netstat có nhiều tham số. v. netstat -p tcp -r Hiển thị bảng định tuyến (routing table) netstat -r -s Hiển thị thống kê chi tiết theo từng giao thức netstat -s -p tcp interval Đặt thời gian tự động làm mới dữ liệu (tính bằng giây) netstat -an 5

Lợi ích và hạn chế khi sử dụng lệnh netstat trong cmd

lệnh netstat trong cmd - Hình 3

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.

    Hạn chế cần lưu ý

    • 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.

So sánh lệnh netstat với các công cụ mạng khác

lệnh netstat trong cmd - Hình 2
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

lệnh netstat trong cmd - Hình 1

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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *