Lệnh netstat, có nghĩa là số liệu thống kê mạng, là lệnh Dấu nhắc Lệnh được sử dụng để hiển thị thông tin rất chi tiết về cách máy tính của bạn đang giao tiếp với các máy tính hoặc thiết bị mạng khác.
Cụ thể, nó có thể hiển thị chi tiết về các kết nối mạng riêng lẻ, thống kê mạng tổng thể và giao thức cụ thể, v.v., tất cả đều có thể giúp khắc phục một số loại sự cố mạng.
Tính khả dụng của Lệnh Netstat
Lệnh này có sẵn từ trong Command Prompt trong hầu hết các phiên bản Windows, bao gồm Windows 11, Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, hệ điều hành Windows Server và một số phiên bản Windows cũ hơn, quá.
Netstat là một lệnh đa nền tảng, có nghĩa là nó cũng có sẵn trong các hệ điều hành khác như macOS và Linux.
Tính khả dụng của một số công tắc lệnh netstat và cú pháp lệnh netstat khác có thể khác nhau giữa các hệ điều hành.
Cú pháp lệnh Netstat
netstat[- a] [- b] [- e] [- f] [- n] [- o] [-p giao thức] [ -r ] [ -s ] [ -t] [- x] [- y] [time_interval] [ /?]
Danh sách lệnh Netstat | |
---|---|
Tùy chọn | Giải thích |
netstat | Thực hiện lệnh netstat một mình để hiển thị danh sách tương đối đơn giản về tất cả các kết nối TCP đang hoạt động, đối với mỗi kết nối, sẽ hiển thị địa chỉ IP cục bộ (máy tính của bạn), địa chỉ IP nước ngoài (máy tính hoặc thiết bị mạng khác), cùng với số cổng tương ứng, cũng như trạng thái TCP. |
- a | Công tắc này hiển thị các kết nối TCP đang hoạt động, kết nối TCP với trạng thái lắng nghe, cũng như các cổng UDP đang được lắng nghe. |
- b | Công tắc netstat này rất giống với công tắc- o được liệt kê bên dưới, nhưng thay vì hiển thị PID, sẽ hiển thị tên tệp thực của quá trình. Sử dụng- bover- ocó vẻ như bạn tiết kiệm được một hoặc hai bước nhưng sử dụng nó đôi khi có thể kéo dài đáng kể thời gian cần netstat để thực thi đầy đủ. |
- e | Sử dụng công tắc này với lệnh netstat để hiển thị số liệu thống kê về kết nối mạng của bạn. Dữ liệu này bao gồm các byte, gói unicast, gói không phải unicast, loại bỏ, lỗi và các giao thức không xác định được nhận và gửi kể từ khi kết nối được thiết lập. |
- f | Công tắc- fsẽ buộc lệnh netstat hiển thị Tên miền Đủ điều kiện (FQDN) cho từng địa chỉ IP nước ngoài khi có thể. |
- n | Sử dụng công tắc- nđể ngăn netstat cố gắng xác định tên máy chủ cho các địa chỉ IP nước ngoài. Tùy thuộc vào kết nối mạng hiện tại của bạn, việc sử dụng công tắc này có thể giảm đáng kể thời gian để netstat thực thi đầy đủ. |
- o | Một tùy chọn tiện dụng cho nhiều tác vụ khắc phục sự cố, công tắc- ohiển thị số nhận dạng quy trình (PID) được liên kết với mỗi kết nối được hiển thị. Xem ví dụ bên dưới để biết thêm về cách sử dụng netstat -o. |
- p | Sử dụng nút chuyển- p để chỉ hiển thị các kết nối hoặc thống kê cho một giao thức cụ thể. Bạn không thể xác định nhiều giao thức cùng một lúc, cũng như không thể thực thi netstat với- pmà không xác định giao thức. |
giao thức | Khi chỉ định giao thức với tùy chọn- p, bạn có thể sử dụng tcp,udp,tcpv6hoặc udpv6Nếu bạn sử dụng- svới- p để xem thống kê theo giao thức, bạn có thể sử dụng icmp,ip,icmpv6, hoặc ipv6ngoài bốn thứ đầu tiên tôi đã đề cập. |
- r | Thực thi netstat với- r để hiển thị bảng định tuyến IP. Điều này cũng giống như việc sử dụng lệnh route để thực thi route print. |
- s | Tùy chọn- scó thể được sử dụng với lệnh netstat để hiển thị số liệu thống kê chi tiết theo giao thức. Bạn có thể giới hạn số liệu thống kê được hiển thị cho một giao thức cụ thể bằng cách sử dụng tùy chọn- svà chỉ định giao thức đó, nhưng hãy đảm bảo sử dụng- strước- pgiao thức khi sử dụng các công tắc cùng nhau. |
- t | Sử dụng công tắc- tđể hiển thị trạng thái tắt tải của ống khói TCP hiện tại thay cho trạng thái TCP thường được hiển thị. |
- x | Sử dụng tùy chọn- xđể hiển thị tất cả các trình nghe NetworkDirect, kết nối và điểm cuối được chia sẻ. |
- y | Công tắc- ycó thể được sử dụng để hiển thị mẫu kết nối TCP cho tất cả kết nối. Bạn không thể sử dụng- yvới bất kỳ tùy chọn netstat nào khác. |
time_in terval | Đây là thời gian, tính bằng giây, bạn muốn lệnh netstat tự động thực thi lại, chỉ dừng khi bạn sử dụng Ctrl-C để kết thúc vòng lặp. |
/? | Sử dụng công tắc trợ giúp để hiển thị chi tiết về một số tùy chọn của lệnh netstat. |
Làm cho tất cả thông tin netstat đó trong dòng lệnh dễ làm việc hơn bằng cách xuất những gì bạn thấy trên màn hình ra tệp văn bản bằng toán tử chuyển hướng. Xem Cách chuyển hướng đầu ra lệnh thành tệp để có hướng dẫn đầy đủ.
Ví dụ về lệnh Netstat
Dưới đây là một số ví dụ cho thấy cách sử dụng lệnh netstat:
Hiển thị kết nối TCP đang hoạt động
netstat -f
Trong ví dụ đầu tiên này, chúng tôi thực thi netstat để hiển thị tất cả các kết nối TCP đang hoạt động. Tuy nhiên, chúng tôi muốn xem các máy tính mà chúng tôi đang kết nối ở định dạng FQDN [- f] thay vì địa chỉ IP đơn giản.
Đây là ví dụ về những gì bạn có thể thấy:
Kết nối Hoạt động
Địa chỉ cục bộ Proto Trạng thái địa chỉ nước ngoài
TCP 127.0.0.1:5357 VM-Windows-7: 49229 TIME_WAIT
TCP 127.0.0.1:49225 VM-Windows-7: 12080 TIME_WAIT
TCP 192.168.1.14: 49194 75.125.212.75:http CLOSE_WAIT
TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14: 49197 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49230 TIM-PC: wsd TIME_WAIT
TCP 192.168.1.14:49231 TIM-PC: icslap ĐƯỢC THÀNH LẬP
TCP 192.168.1.14:49232 TIM-PC: netbios-ssn TIME_WAIT
TCP 192.168.1.14:49233 TIM-PC: netbios-ssn TIME_WAIT
TCP [:: 1]: 2869 VM-Windows-7: 49226 ĐƯỢC THÀNH LẬP
TCP [:: 1]: 49226 VM-Windows-7: icslap ĐÃ THÀNH LẬP
Như bạn có thể thấy, có 11 kết nối TCP đang hoạt động tại thời điểm netstat được thực thi trong ví dụ này. Giao thức duy nhất (trong cột Proto) được liệt kê là TCP, được mong đợi vì chúng tôi không sử dụng- a.
Bạn cũng có thể thấy ba bộ địa chỉ IP trong cột Địa chỉ cục bộ - địa chỉ IP thực của 192.168.1.14 và cả phiên bản IPv4 và IPv6 của địa chỉ lặp lại, cùng với cổng mà mỗi kết nối đang sử dụng. Cột Địa chỉ nước ngoài liệt kê FQDN (75.125.212.75 không giải quyết được vì lý do nào đó) cùng với cổng đó.
Cuối cùng, cột Trạng thái liệt kê trạng thái TCP của kết nối cụ thể đó.
Hiển thị Kết nối và Số nhận dạng Quy trình
netstat -o
Trong ví dụ này, netstat sẽ được chạy bình thường nên nó chỉ hiển thị các kết nối TCP đang hoạt động, nhưng chúng tôi cũng muốn xem số nhận dạng quy trình tương ứng [- o] cho mỗi kết nối. mà chúng tôi có thể xác định chương trình nào trên máy tính đã khởi tạo từng chương trình.
Đây là những gì máy tính hiển thị:
Kết nối đang hoạt động
Proto Địa chỉ cục bộ Trạng thái địa chỉ nước ngoài PID
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948
TCP 192.168.1.14:49196 a795sm: http CLOSE_WAIT 2948
TCP 192.168.1.14:49197 a795sm: http CLOSE_WAIT 2948
Có thể bạn đã nhận thấy cột PID mới. Trong trường hợp này, các PID đều giống nhau, nghĩa là cùng một chương trình trên máy tính đã mở các kết nối này.
Để xác định chương trình nào được đại diện bởi PID là 2948 trên máy tính, tất cả những gì bạn phải làm là mở Trình quản lý tác vụ, chọn tab Processesvà lưu ý Tên hình ảnh được liệt kê bên cạnh PID mà chúng tôi đang tìm kiếm trong cột PID.1
Sử dụng lệnh netstat với tùy chọn- ocó thể rất hữu ích khi theo dõi chương trình nào đang sử dụng phần băng thông quá lớn của bạn. Nó cũng có thể giúp xác định điểm đến mà một số loại phần mềm độc hại, hoặc thậm chí một phần mềm hợp pháp khác, có thể gửi thông tin mà không có sự cho phép của bạn.
Trong khi ví dụ này và ví dụ trước đều chạy trên cùng một máy tính và chỉ trong vòng một phút của nhau, bạn có thể thấy rằng danh sách các kết nối TCP đang hoạt động là khác nhau đáng kể. Điều này là do máy tính của bạn liên tục kết nối và ngắt kết nối với nhiều thiết bị khác trên mạng của bạn và qua internet.
Chỉ hiển thị các kết nối cụ thể
netstat -0 | findstr 28604
Ví dụ trên tương tự như những gì chúng ta đã xem xét, nhưng thay vì hiển thị tất cả các kết nối, chúng ta đang yêu cầu lệnh netstat chỉ hiển thị các kết nối đang sử dụng một PID cụ thể, 28604 trong ví dụ này.
Một lệnh tương tự có thể được sử dụng để lọc ra các kết nối có trạng thái CLOSE_WAIT, bằng cách thay thế PID bằng ESTABLISHED.
Hiển thị Thống kê Giao thức Cụ thể
netstat -s -p tcp -f
Trong ví dụ này, chúng tôi muốn xem thống kê cụ thể về giao thức [- s] nhưng không phải tất cả chúng, chỉ là thống kê TCP [- p tcp]. Chúng tôi cũng muốn các địa chỉ nước ngoài được hiển thị ở định dạng FQDN [ -f ].
Đây là lệnh netstat, như được hiển thị ở trên, được tạo trên máy tính mẫu:
Thống kê TCP cho IPv4
Hoạt động Mở=77
Mở thụ động=21
Nỗ lực kết nối không thành công=2Đặt lại kết nối=25Kết nối hiện tại=5Đoạn đã nhận=7313Phân đoạn đã được gửi=4824Phân đoạn được truyền lại=5Kết nối đang hoạt độngProto Địa chỉ cục bộ Địa chỉ nước ngoài Trạng tháiTCP 127.0.0.1: 2869 VM-Windows-7: 49235 TIME_WAITTCP 127.0.0.1:2869 VM-Windows-7: 49238 ĐÃ THÀNH LẬPTCP 127.0. 0.1: 49238 VM-Windows-7: icslap ĐƯỢC THÀNH LẬPTCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAITTCP 192.168.1.14:49196 a795sm.avast.com: http CLOSE_WAITTCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT
Như bạn có thể thấy, các số liệu thống kê khác nhau cho giao thức TCP được hiển thị, cũng như tất cả các kết nối TCP đang hoạt động tại thời điểm đó.
Hiển thị số liệu thống kê mạng đã cập nhật
netstat -e -t 5
Trong ví dụ cuối cùng này, lệnh netstat được thực hiện để hiển thị một số thống kê giao diện mạng cơ bản [- e] và để các thống kê này liên tục được cập nhật trong cửa sổ lệnh sau mỗi năm giây [- t5].
Đây là những gì được tạo ra trên màn hình:
Thống kê giao diện
Đã nhận Đã gửi
Byte 22132338 1846834
Gói Unicast 19113 9869
Các gói không phải unicast 0 0
Loại bỏ 0 0
Lỗi 0 0
Giao thức không xác định 0Thống kê giao diệnĐã nhận Đã gửiByte 22134630 1846834
gói Unicast 19128 9869
Gói không phải unicast 0 0
Loại bỏ 0 0
Lỗi 0 0
Giao thức không xác định 0
^ C
Nhiều thông tin khác nhau, bạn có thể xem ở đây và chúng tôi liệt kê trong cú pháp- eở trên, được hiển thị.
Lệnh netstat chỉ tự động thực hiện thêm một lần nữa, như bạn có thể thấy ở hai bảng trong kết quả. Lưu ý ^ C ở dưới cùng, cho biết rằng lệnh hủy bỏ Ctrl + C đã được sử dụng để dừng chạy lại lệnh.
Các lệnh liên quan đến Netstat
Lệnh netstat thường được sử dụng với các lệnh Command Prompt liên quan đến mạng khác như nslookup, ping, tracert, ipconfig và các lệnh khác.
[1] Bạn có thể phải thêm cột PID vào Trình quản lý tác vụ theo cách thủ công. Bạn có thể thực hiện việc này bằng cách chọn PIDsau khi nhấp chuột phải vào tiêu đề cột trong tab Process. Nếu bạn đang sử dụng Windows 7 hoặc trên HĐH Windows cũ hơn, hãy chọn hộp kiểm PID (Mã định danh quy trình)từ Xem> Chọn Các cộttrong Trình quản lý Tác vụ. Bạn cũng có thể phải chọn Hiển thị quy trình từ tất cả người dùngtừ cuối tab Quy trìnhnếu PID bạn đang tìm kiếm không được liệt kê.