Hướng dẫn sử dụng lệnh NETSTAT trên Windows quản lý mạng

Chúng ta cùng tìm hiểu cách sử dụng lệnh NETSTAT (Network Statistic) trên Windows cũng như các option lệnh thông dụng của chương trình.

Vậy lệnh NETSTAT là gì?

Đơn giản đó là một chương trình được thiết kế để hiển thị các thông tin cần thiết nhằm xử lý các lỗi liên quan đến mạng. Đây là một chương trình đa nền tảng, tức trên Linux cũng có, OSX cũng có và Windows tất nhiên là có rồi. Vậy hãy cùng “cuongquach.com” tìm hiểu cách sử dụng chương trình lệnh NETSTAT nào.

Một số tính năng nổi bật của lệnh NETSTAT như sau:
– Hiển thị các kết nối chiều vào và chiều ra.
– Hiển thị bảng định tuyến route.
– Hiển thị thống kê thông tin giao thức mạng.

Cấu trúc lệnh “netstat” trên Windows

netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [-v] [interval]

Ta sử dụng ‘netstat‘ trên chương trình CMD của Windows nhé. Và giờ chúng ta sẽ cùng tìm hiểu các option lệnh kèm theo lệnh “netstat” nhé.

1. Hiển thị tất cả kết nối và lắng nghe

Với option ‘-a‘, lệnh “netstat” sẽ hiển thị các thông tin về tất cả các kết nối (connection) giữa máy tính local của bạn với các máy tính remote trong hay ngoài mạng. Bên cạnh đó option này cũng sẽ liệt kê các port đang được lắng nghe như dưới dạng dịch vụ trên máy tính local.

C:\Users\cuongqc> netstat -an

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5985           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49156          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49157          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49160          0.0.0.0:0              LISTENING
  TCP    10.12.165.101:139      0.0.0.0:0              LISTENING
  TCP    10.12.165.101:3389     10.99.90.63:61986      ESTABLISHED
  TCP    10.12.170.250:139      0.0.0.0:0              LISTENING
  TCP    10.12.170.250:62986    10.12.170.99:443       ESTABLISHED
  TCP    10.12.170.250:62987    10.12.170.99:443       ESTABLISHED
  TCP    10.12.170.250:63012    10.12.170.99:902       ESTABLISHED
  TCP    10.12.170.250:63026    10.12.170.99:443       CLOSE_WAIT
  TCP    10.12.170.250:63124    10.12.170.99:443       ESTABLISHED
  TCP    10.12.171.252:139      0.0.0.0:0              LISTENING
  TCP    127.0.0.1:62998        127.0.0.1:62999        ESTABLISHED
  TCP    127.0.0.1:62999        127.0.0.1:62998        ESTABLISHED
  TCP    127.0.0.1:63013        127.0.0.1:63014        ESTABLISHED
  TCP    127.0.0.1:63014        127.0.0.1:63013        ESTABLISHED
  TCP    127.0.0.1:63473        127.0.0.1:63474        ESTABLISHED
  TCP    127.0.0.1:63474        127.0.0.1:63473        ESTABLISHED
  TCP    127.0.0.1:63475        127.0.0.1:63476        ESTABLISHED
  TCP    127.0.0.1:63476        127.0.0.1:63475        ESTABLISHED
  TCP    127.0.0.1:63482        0.0.0.0:0              LISTENING

lệnh netstat -a

Giải thích tham số

  • Proto: Cho biết kế nối là TCP hay UDP
  • Local address: Địa chỉ IP của máy tính địa phương và số cổng được sử dụng. Tên của máy tính địa phương tương ứng với địa chỉ IP và tên của cảng được hiển thị trừ khi tham số -n được quy định cụ thể. Nếu cổng chưa được thành lập, số cổng phải được thể hiện như là một dấu sao (*).
  • Foreign address: Địa chỉ IP và số cổng của máy tính từ xa mà ổ cắm được kết nối. Các tên tương ứng với địa chỉ IP và cổng được hiển thị trừ khi tham số -n được quy định cụ thể. Nếu cổng chưa được thành lập, số cổng phải được thể hiện như là một dấu sao (*)
  • State: Cho biết trang thái cổng: Cho biết trạng thái của một kết nối TCP. Các trạng thái có thể là như sau:
    • CLOSE_WAIT
    • CLOSED
    • ESTABLISHED
    • FIN_WAIT_1
    • FIN_WAIT_2
    • LAST_ACK
    • LISTEN
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT

2. Hiển thị tiến trình thực thi kết nối

Bạn có thể biết được tên tiến trình nào đang thực thi mở kết nối từ máy tính Windows ra ngoài hoặc từ ngoài kết nối vào chương trình đang lắng nghe.

C:\Users\cuongqc> netstat -b

lệnh netstat -b

3. Hiển thị thống kê card mạng Ethernet

Sử dụng option “-e” sẽ giúp bạn tra cứu các thống kê cơ bản liên quan đến NIC card mạng Ethernet của máy tính hay server Windows.

C:\Users\cuongqc> netstat -e
Interface Statistics

                           Received            Sent

Bytes                    3923193320      1924875892
Unicast packets           330085828       210927948
Non-unicast packets        17465272        15841088
Discards                          0               0
Errors                            0               0
Unknown protocols                 0

lệnh netstat -e

4. Hiển thị thông tin bảng định tuyến

Nếu bạn cần tìm hiểu xem đường đi của gói tin sẽ đi hướng nào trên máy tính Windows, thì bạn có thể sử dụng option “-r” nhằm liệt kê thông tin bảng định tuyến đang có trên hệ thống Windows.

C:\Users\cuongqc> netstat -r
===========================================================================
Interface List
 16...00 50 56 80 85 13 ......vmxnet3 Ethernet Adapter #3
 14...00 50 56 b7 96 fb ......vmxnet3 Ethernet Adapter #2
 12...00 50 56 b7 1d fd ......vmxnet3 Ethernet Adapter
  1...........................Software Loopback Interface 1
 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 17...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      10.12.165.1    10.12.165.101    261
      10.12.165.0    255.255.255.0         On-link     10.12.165.101    261
    10.12.165.101  255.255.255.255         On-link     10.12.165.101    261
    10.12.165.255  255.255.255.255         On-link     10.12.165.101    261
      10.12.170.0    255.255.255.0         On-link     10.12.170.250    261
    10.12.170.250  255.255.255.255         On-link     10.12.170.250    261
    10.12.170.255  255.255.255.255         On-link     10.12.170.250    261
      10.12.171.0    255.255.255.0         On-link     10.12.171.252    261
    10.12.171.252  255.255.255.255         On-link     10.12.171.252    261
    10.12.171.255  255.255.255.255         On-link     10.12.171.252    261
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     10.12.165.101    261
        224.0.0.0        240.0.0.0         On-link     10.12.170.250    261
        224.0.0.0        240.0.0.0         On-link     10.12.171.252    261
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     10.12.165.101    261
  255.255.255.255  255.255.255.255         On-link     10.12.170.250    261
  255.255.255.255  255.255.255.255         On-link     10.12.171.252    261
===========================================================================

5. Hiển thị đầy đủ tên Domain (FQDN)

Trong một số tình huống bạn mong muốn hiển thị thông tin tên miền thay cho địa chỉ IP của remote host. Tất nhiên là máy chủ phải phân giải được tên miền FQDN (Fully Qualified Domain Name) đó, nhưng lệnh “netstat” sẽ chỉ hiển thị tên miền đại diện thôi.

C:\Users\cuongqc> netstat -f

lệnh netstat -f

6. Hiển thị địa chỉ địa chỉ IP remote host (không phân giải domain)

Việc hiển thị thông tin địa chỉ Remote Host bằng lệnh “netstat” ở trạng thái mặc định thì chương trình sẽ cố gắng phân giải địa chỉ IP ra DomainName tìm được. Việc này đôi khi không cần thiết và làm chậm quá trình kiểm tra thông tin. Nên bạn hoàn toàn có thể sử dụng option “-n” để buộc “netstat” chỉ hiển thị các thông tin địa chỉ remote host dưới dạng địa chỉ IP đơn thuần.

C:\Users\cuongqc> netstat -n

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    10.12.165.101:3389     10.99.90.63:61986      ESTABLISHED
  TCP    10.12.170.250:62986    10.12.170.99:443       ESTABLISHED
  TCP    10.12.170.250:62987    10.12.170.99:443       ESTABLISHED
  TCP    10.12.170.250:63012    10.12.170.99:902       ESTABLISHED
  TCP    10.12.170.250:63026    10.12.170.99:443       CLOSE_WAIT
  TCP    10.12.170.250:63124    10.12.170.99:443       ESTABLISHED
  TCP    127.0.0.1:62998        127.0.0.1:62999        ESTABLISHED
  TCP    127.0.0.1:62999        127.0.0.1:62998        ESTABLISHED
  TCP    127.0.0.1:63013        127.0.0.1:63014        ESTABLISHED
  TCP    127.0.0.1:63014        127.0.0.1:63013        ESTABLISHED
  TCP    127.0.0.1:63473        127.0.0.1:63474        ESTABLISHED
  TCP    127.0.0.1:63474        127.0.0.1:63473        ESTABLISHED
  TCP    127.0.0.1:63475        127.0.0.1:63476        ESTABLISHED
  TCP    127.0.0.1:63476        127.0.0.1:63475        ESTABLISHED

lệnh netstat -n

7. Hiển thị thông tin ID tiến trình của 1 kết nối

Bạn thắc mắc là các kết nối được hiển thị trên “netstat” output là do tiến trình nào trên hệ thống đang thực hiện mở kết nối. Vậy thì với option “-o“, “netstat” sẽ show ra cho chúng ta thêm 1 cột “PID” là ID định danh cho tiến trình đang mở kết nối tương ứng.

C:\Users\cuongqc> netstat -on

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    10.12.165.101:3389     10.99.90.63:61986      ESTABLISHED     1712
  TCP    10.12.170.250:62986    10.12.170.99:443       ESTABLISHED     1996
  TCP    10.12.170.250:62987    10.12.170.99:443       ESTABLISHED     1996
  TCP    10.12.170.250:63012    10.12.170.99:902       ESTABLISHED     5984
  TCP    10.12.170.250:63026    10.12.170.99:443       CLOSE_WAIT      5984
  TCP    10.12.170.250:63124    10.12.170.99:443       TIME_WAIT       0
  TCP    10.12.170.250:63125    10.12.170.99:443       ESTABLISHED     1996
  TCP    127.0.0.1:62998        127.0.0.1:62999        ESTABLISHED     5984
  TCP    127.0.0.1:62999        127.0.0.1:62998        ESTABLISHED     5984
  TCP    127.0.0.1:63013        127.0.0.1:63014        ESTABLISHED     6660
  TCP    127.0.0.1:63014        127.0.0.1:63013        ESTABLISHED     6660
  TCP    127.0.0.1:63473        127.0.0.1:63474        ESTABLISHED     4192
  TCP    127.0.0.1:63474        127.0.0.1:63473        ESTABLISHED     4192
  TCP    127.0.0.1:63475        127.0.0.1:63476        ESTABLISHED     1184
  TCP    127.0.0.1:63476        127.0.0.1:63475        ESTABLISHED     1184

lệnh netstat -on

8. Hiển thị các kết nối theo giao thức

Ta có thể dùng option “-p” để hiển thị các kết nối cho giao thức theo quy định của giao thức có thể là bất kỳ: TCP, UDP, TCP v6 hoặc UDPv6. (Tham số này được sử dụng với “-s” để hiển thị các số liệu thống kê bởi giao thức: tcp, udp, icmp, ip, tcpv6, udpv6, icmp, hoặc ipv6)

Cú pháp

netstat -p [ udp | tcp | tcpv6 | udpv6 | icmp | ip ]

lệnh netstat -p

9. Hiển thị thống kê giao thức

Option “-s” dùng để hiển thị số liệu thống kê cho mỗi giao thức. Theo mặc định, các số liệu thống kê được hiển thị cho TCP, UDP và IP, tuỳ chọn “-p” có thể được sử dụng để chỉ định một tập hợp con của mặc định. Cũng khá là cần thiết để kiểm tra thông tin như các packet bị lỗi, các packet bị từ chối,….

C:\Users\cuongqc>netstat -s

IPv4 Statistics

  Packets Received                   = 83969977
  Received Header Errors             = 0
  Received Address Errors            = 39962
  Datagrams Forwarded                = 0
  Unknown Protocols Received         = 687
  Received Packets Discarded         = 3782358
  Received Packets Delivered         = 82728285
  Output Requests                    = 57582078
  Routing Discards                   = 0
  Discarded Output Packets           = 205
  Output Packet No Route             = 10
  Reassembly Required                = 0
  Reassembly Successful              = 0
  Reassembly Failures                = 0
  Datagrams Successfully Fragmented  = 0
  Datagrams Failing Fragmentation    = 0
  Fragments Created                  = 0

IPv6 Statistics

  Packets Received                   = 17635
  Received Header Errors             = 0
  Received Address Errors            = 0
  Datagrams Forwarded                = 0
  Unknown Protocols Received         = 0
  Received Packets Discarded         = 497550
  Received Packets Delivered         = 17783
  Output Requests                    = 1389565
  Routing Discards                   = 0
  Discarded Output Packets           = 0
  Output Packet No Route             = 6
  Reassembly Required                = 0
  Reassembly Successful              = 0
  Reassembly Failures                = 0
  Datagrams Successfully Fragmented  = 0
  Datagrams Failing Fragmentation    = 0
  Fragments Created                  = 0

ICMPv4 Statistics

                            Received    Sent
  Messages                  766         61
  Errors                    0           0
  Destination Unreachable   749         41
  Time Exceeded             0           0
  Parameter Problems        0           0
  Source Quenches           0           0
  Redirects                 0           0
  Echo Replies              17          0
  Echos                     0           20
  Timestamps                0           0
  Timestamp Replies         0           0
  Address Masks             0           0
  Address Mask Replies      0           0
  Router Solicitations      0           0
  Router Advertisements     0           0

ICMPv6 Statistics

                            Received    Sent
  Messages                  29          15
  Errors                    0           0
  Destination Unreachable   0           0
  Packet Too Big            0           0
  Time Exceeded             0           0
  Parameter Problems        0           0
  Echos                     0           0

lệnh netstat -s

10. Hiển thị thông tin theo thời gian

Bạn hoàn toàn có thể set thời gian để chương trình “netstat” chạy định kì tuần tự thời gian lặp lại. Nhấn phím Ctrl + C để ngăn chặn thống kê in ra màn hình.

C:\Users\cuongqc> netstat -an 2

11. Ví dụ kết hợp option lệnh NETSTAT

Một số ví dụ khi kết hợp lệnh NETSTAT bạn sẽ có những thống kê thông tin nhiều hơn. Vậy bạn hãy tự mình trải nghiệm các câu lệnh sau để xem kết quả nhé.

– Để hiển thị cả số liệu thống kê Ethernet và các số liệu thống kê cho tất cả các giao thức, gõ lệnh sau:

C:\Users\cuongqc> netstat -e -s

– Để hiển thị các số liệu thống kê cho các giao thức TCP và UDP, gõ lệnh sau:

C:\Users\cuongqc> netstat -s -p tcp udp

– Để hiển thị các hoạt động kết nối TCP và số liệu ID mỗi tiến trình mỗi 5 giây, gõ lệnh sau:

C:\Users\cuongqc> netstat -o 5

– Để hiển thị các hoạt động kết nối TCP và ID quá trình này bằng cách sử dụng hình thức số (không phân giải DomainName), gõ lệnh sau:

C:\Users\cuongqc> netstat -n -o

Vậy là kết thúc bài viết này bạn đã có thể sử dụng thành thạo chương trình lệnh NETSTAT trên Windows rồi. Điều này hoàn toàn có thể giúp bạn xử lý các sự cố mạng sau này ngay trên Windows/Windows Server. Thế nên hãy học cách sử dụng lệnh NETSTAT cơ bản nhé.

Previous articleMã bưu chính (Zip Postal Code) các tỉnh thành Việt Nam 2017
Next articleTài liệu 42 bài tập lập trình JAVA căn bản – Tiếng Việt
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !