Lệnh netstat trong linux với các ví dụ dễ hiểu

Lệnh netstat trong linux là một công cụ dòng lệnh mạnh mẽ, giúp bạn kiểm tra các kết nối mạng đang hoạt động trên hệ thống. Nó hiển thị thông tin chi tiết về các cổng đang mở, các kết nối TCP/UDP và trạng thái của chúng một cách trực quan. Sử dụng netstat trong linux, bạn có thể dễ dàng theo dõi lưu lượng mạng và phát hiện các vấn đề liên quan đến kết nối.

Lệnh netstat trong linux là gì?

Lệnh command netstat in linux là một công cụ dòng lệnh mạnh mẽ, giúp bạn theo dõi các kết nối mạng đang hoạt động trên hệ thống Linux của mình. Nó hiển thị thông tin chi tiết về các cổng đang mở, các kết nối TCP/UDP, và các bảng định tuyến. Bạn có thể sử dụng netstat để kiểm tra xem ứng dụng nào đang lắng nghe trên cổng nào, hoặc để xác định các kết nối đến và đi từ máy tính của bạn. Tuy nhiên, cần lưu ý rằng netstat đã được thay thế bằng lệnh `ss` trong nhiều bản phân phối Linux hiện đại, mặc dù nó vẫn còn được sử dụng rộng rãi. Nó là một công cụ hữu ích cho việc gỡ lỗi mạng và giám sát hiệu suất.

Tìm hiểu Mục đích và Cú pháp của Lệnh netstat

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp cơ bản của lệnh netstat trong Linux.

Lệnh netstat là một công cụ mạnh mẽ để giám sát và khắc phục sự cố kết nối mạng và thống kê giao diện mạng.

Để bắt đầu, hãy khám phá cú pháp cơ bản của lệnh netstat:

$ netstat [options]

Các tùy chọn phổ biến nhất được sử dụng với netstat là:

  • -a: Hiển thị tất cả các kết nối mạng và các cổng đang lắng nghe.
  • -n: Hiển thị địa chỉ số thay vì phân giải tên máy chủ.
  • -t: Hiển thị các kết nối TCP.
  • -u: Hiển thị các kết nối UDP.
  • -p: Hiển thị ID tiến trình và tên liên kết với mỗi kết nối.
  • -s: Hiển thị thống kê mạng.

Hãy thử một vài ví dụ để hiểu rõ hơn về đầu ra của lệnh netstat:

$ sudo netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld
tcp        0      0 192.168.1.100:22        192.168.1.101:50036     ESTABLISHED 1234/sshd

Ví dụ về đầu ra:

  • Lệnh netstat -antp hiển thị tất cả các kết nối TCP đang hoạt động, bao gồm cả cổng đang lắng nghe và kết nối đã được thiết lập.
  • Đầu ra hiển thị giao thức, địa chỉ cục bộ và địa chỉ ngoài, trạng thái kết nối, ID tiến trình và tên chương trình liên kết với mỗi kết nối.

Điều này cung cấp cho bạn một sự hiểu biết cơ bản về lệnh netstat và cú pháp của nó.

Trong bước tiếp theo, bạn sẽ khám phá cách sử dụng nâng cao hơn của netstat để phân tích các kết nối mạng.

Khám Phá Kết Nối Mạng Bằng Lệnh netstat

Trong bước này, bạn sẽ học cách sử dụng lệnh netstat để khám phá và phân tích các kết nối mạng trên hệ thống.

Chúng ta hãy bắt đầu bằng cách hiển thị tất cả các kết nối mạng đang hoạt động, bao gồm cả cổng đang lắng nghe và kết nối đã thiết lập:

$ sudo netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld
tcp        0      0 192.168.1.100:22        192.168.1.101:50036     ESTABLISHED 1234/sshd

Ví dụ về đầu ra:

  • Lệnh netstat -antp hiển thị tất cả các kết nối TCP đang hoạt động, bao gồm cổng đang lắng nghe và kết nối đã thiết lập.
  • Đầu ra hiển thị giao thức, địa chỉ cục bộ và địa chỉ ngoài, trạng thái kết nối, ID tiến trình và tên chương trình liên quan đến mỗi kết nối.

Bây giờ, hãy lọc đầu ra để chỉ hiển thị các cổng đang lắng nghe:

$ sudo netstat -antp | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld

Ví dụ về đầu ra:

  • Bộ lọc grep LISTEN chỉ hiển thị các kết nối mạng ở trạng thái LISTEN, cho biết hệ thống đang lắng nghe các kết nối đến trên các cổng đó.

Để chỉ hiển thị các kết nối đã được thiết lập, bạn có thể sử dụng lệnh sau:

$ sudo netstat -antp | grep ESTABLISHED
tcp        0      0 192.168.1.100:22        192.168.1.101:50036     ESTABLISHED 1234/sshd

Ví dụ về đầu ra:

  • Bộ lọc grep ESTABLISHED chỉ hiển thị các kết nối mạng ở trạng thái ESTABLISHED, cho biết kết nối đang hoạt động và dữ liệu có thể được trao đổi.

Bằng cách sử dụng các tùy chọn và bộ lọc khác nhau với lệnh netstat, bạn có thể khám phá và phân tích chi tiết các kết nối mạng trên hệ thống của mình.

Phân Tích Thống Kê Mạng và Khắc Phục Sự Cố Mạng

Trong bước cuối cùng này, bạn sẽ học cách sử dụng lệnh netstat để phân tích thống kê mạng và khắc phục sự cố mạng trên hệ thống của bạn.

Đầu tiên, hãy hiển thị thống kê mạng tổng thể bằng tùy chọn -s:

$ sudo netstat -s
Ip:
    Forwarding: 2
    ...
Tcp:
    Active opens: 10
    Passive opens: 5
    ...
Udp:
    InDatagrams: 100
    NoPorts: 20
    ...

Ví dụ về đầu ra:

  • Lệnh netstat -s hiển thị một loạt các thống kê mạng, bao gồm thống kê IP, TCP và UDP.
  • Thông tin này có thể hữu ích để xác định các vấn đề tiềm ẩn về hiệu suất mạng hoặc các điểm bất thường.

Tiếp theo, hãy xem xét kỹ hơn các thống kê giao diện mạng bằng tùy chọn -i:

$ sudo netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s3  1500 0     12345   0      0       0      54321     0       0       0 BMRU
lo     65536 0     54321   0      0       0      12345     0       0       0 LRU

Ví dụ về đầu ra:

  • Lệnh netstat -i hiển thị thống kê chi tiết cho từng giao diện mạng, bao gồm số lượng gói tin đã nhận và truyền, cũng như số lỗi và số gói tin bị loại bỏ.
  • Thông tin này có thể giúp bạn xác định các vấn đề tiềm ẩn của giao diện mạng, chẳng hạn như tỷ lệ lỗi hoặc tỷ lệ loại bỏ cao.

Cuối cùng, hãy sử dụng lệnh netstat để khắc phục sự cố kết nối mạng. Giả sử bạn đang gặp sự cố kết nối với một máy chủ từ xa. Bạn có thể sử dụng lệnh sau để điều tra vấn đề:

$ sudo netstat -antp | grep 192.168.1.101
tcp        0      0 192.168.1.100:22        192.168.1.101:50036     ESTABLISHED 1234/sshd

Ví dụ về đầu ra:

  • Lệnh netstat -antp | grep 192.168.1.101 tìm kiếm bất kỳ kết nối đang hoạt động nào đến địa chỉ IP 192.168.1.101.
  • Đầu ra cho thấy có một kết nối SSH đã được thiết lập giữa hệ thống cục bộ (192.168.1.100) và máy chủ từ xa (192.168.1.101).
  • Thông tin này có thể giúp bạn xác định xem sự cố kết nối nằm trên hệ thống cục bộ hay từ xa, hoặc nếu sự cố nằm ở cơ sở hạ tầng mạng giữa hai hệ thống.

Bằng cách sử dụng các tùy chọn và tính năng khác nhau của lệnh netstat, bạn có thể phân tích hiệu quả thống kê mạng và khắc phục sự cố mạng trên hệ thống Linux của mình.

Kết luận cho linux netstat command

Tóm lại, linux netstat command là một công cụ mạnh mẽ giúp bạn theo dõi các kết nối mạng trên hệ thống Linux của mình. Nó cho phép bạn xem các cổng đang mở, các kết nối đang hoạt động và trạng thái của chúng một cách dễ dàng. Hy vọng bài viết này đã cung cấp cho bạn cái nhìn tổng quan về cách sử dụng lệnh linux netstat command. Hãy thử nghiệm với các tùy chọn khác nhau để khám phá thêm nhiều thông tin hữu ích. Việc nắm vững lệnh này sẽ giúp bạn chẩn đoán và giải quyết các vấn đề liên quan đến mạng một cách hiệu quả. Chúc bạn thành công trong việc quản lý mạng Linux của mình! Đừng ngần ngại tìm hiểu thêm các tài liệu khác để nâng cao kiến thức nhé.

Last Updated : 15/10/2025