Lệnh netstat trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh netstat của Linux để giám sát và khắc phục sự cố các kết nối mạng và thống kê giao diện mạng. Lab này bao gồm mục đích và cú pháp của lệnh netstat, khám phá các kết nối mạng bằng netstat, và phân tích các thống kê mạng và khắc phục các sự cố mạng. Bạn sẽ có được kinh nghiệm thực tế trong việc sử dụng netstat để hiểu trạng thái mạng của bạn và xác định các vấn đề tiềm ẩn.

Lab bắt đầu bằng cách giới thiệu lệnh netstat, mục đích và cú pháp cơ bản của nó. Sau đó, nó hướng dẫn bạn khám phá các kết nối mạng bằng netstat, bao gồm hiển thị các kết nối đang hoạt động, các cổng đang lắng nghe và các tiến trình được liên kết với mỗi kết nối. Cuối cùng, lab này bao gồm việc sử dụng netstat để phân tích thống kê mạng và khắc phục các sự cố mạng, chẳng hạn như xác định mức sử dụng mạng cao hoặc các vấn đề kết nối.

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ố cá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 đầ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ụ đầ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ác cổng đang lắng nghe và các 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ỉ nước ngoài, trạng thái kết nối và ID tiến trình và tên chương trình được 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 Sử dụ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 của bạn.

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ác cổng đang lắng nghe và các kết nối đã được 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ụ đầ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ác cổng đang lắng nghe và các 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ỉ nước ngoài, trạng thái kết nối và ID tiến trình và tên chương trình được liên kết với 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ụ đầ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 rằng 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ụ đầ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 rằng 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 các kết nối mạng trên hệ thống của bạn một cách chi tiết.

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 cá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ụ đầ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ụ đầu ra:

  • Lệnh netstat -i hiển thị thống kê chi tiết cho mỗi giao diện mạng, bao gồm số lượng gói tin đã nhận và đã truyền, cũng như số lượng lỗi và số lượng 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ệ gói tin bị 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ụ đầ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 có nằm trên hệ thống cục bộ hay hệ thống từ xa hay không, 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 các sự cố mạng trên hệ thống Linux của bạn. Một SystemAdmin lành nghề cần nắm vững công cụ này.

Tóm tắt

Trong lab này, trước tiên bạn đã 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ố các kết nối mạng và thống kê giao diện mạng. Bạn đã khám phá các tùy chọn phổ biến nhất được sử dụng với netstat, chẳng hạn như -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ủ và -p để hiển thị ID tiến trình và tên được liên kết với mỗi kết nối.

Tiếp theo, bạn đã 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 của bạn. Bạn 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ác cổng đang lắng nghe và các kết nối đã được thiết lập, bằng lệnh netstat -antp. Điều này cung cấp cho bạn thông tin chi tiết về giao thức, địa chỉ cục bộ và địa chỉ nước ngoài, trạng thái kết nối và ID tiến trình và tên chương trình được liên kết với mỗi kết nối.

400+ câu lệnh phổ biến trong Linux