Lệnh SS trong Linux là gì?

What Is Ss Command Linux



Khả năng xem và hiểu các kết nối ổ cắm mạng khi chúng xảy ra trong hệ thống Linux của bạn có thể có giá trị khi khắc phục sự cố và nhận trạng thái hệ thống của bạn.

Hướng dẫn này sẽ đưa bạn đi tìm hiểu sâu về tiện ích dòng lệnh ss cho phép chúng ta xem các kết nối mạng và các thông tin chi tiết khác. Sử dụng những gì bạn sẽ học được từ hướng dẫn này, bạn sẽ hiểu và sử dụng tiện ích ss để có thông tin và năng suất tối đa.







Hãy để chúng tôi bắt đầu.



Ss là gì?

Tóm lại, ss là một tiện ích dòng lệnh cho phép người dùng kết xuất thông tin ổ cắm mạng. Nó tương tự như công cụ netstat phổ biến, nhưng nó cung cấp nhiều tính năng và thông tin hơn netstat.



Ss cho phép bạn xem thông tin chi tiết về cách máy của bạn giao tiếp với các tài nguyên khác như mạng, dịch vụ và kết nối mạng.





Sử dụng thông tin ss, bạn có thể hiểu rõ ràng điều gì đang xảy ra, khi nào và như thế nào. Nó có thể rất tiện dụng trong quá trình khắc phục sự cố.

Cách sử dụng lệnh cơ bản

Sử dụng lệnh ss dễ dàng như nhập hai chữ cái vào một thiết bị đầu cuối và nhấn enter. Mặc dù nó hỗ trợ nhiều đối số, nhưng việc gọi lệnh ss không có tùy chọn sẽ hiển thị thông tin về tất cả các kết nối, bất kể trạng thái của chúng.



Khi được sử dụng mà không có tùy chọn nào, lệnh ss kết xuất rất nhiều thông tin mà bạn có thể tham khảo sau này. Để lưu đầu ra vào một tệp, bạn có thể sử dụng toán tử chuyển hướng đầu ra như được hiển thị trong lệnh:

sudo ss> output.txt

GHI CHÚ : Điều cần lưu ý là chạy lệnh ss có và không có đặc quyền sudo có thể cho các kết quả đầu ra khác nhau — nghĩa là lệnh ss liệt kê thông tin dựa trên ngữ cảnh người dùng.

Tùy chọn lệnh ss cơ bản

Như đã đề cập, lệnh ss hỗ trợ các tùy chọn khác nhau cho phép bạn kiểm soát đầu ra và thông tin hiển thị. Bạn có thể xem các tùy chọn cơ bản bằng lệnh:

ss --help

Một số tùy chọn cơ bản được hỗ trợ bởi lệnh ss bao gồm:

  1. -V hoặc –version: Cho phép bạn xem phiên bản đã cài đặt của tiện ích ss.
  2. -H hoặc – không có tiêu đề: Cờ này chặn dòng tiêu đề. Dòng tiêu đề mặc định của lệnh ss chứa các giá trị sau: Netid, State, Recv-Q, Send-Q, Local Address: Port và Peer Address: Port. Việc loại bỏ tiêu đề rất hữu ích khi bạn cần xử lý đầu ra ss bằng các công cụ khác.
  3. -t hoặc –tcp: Cho lệnh ss chỉ hiển thị các kết nối TCP.
  4. -a hoặc –tất cả: Hiển thị cả kết nối nghe và không nghe.
  5. -e hoặc –extended: Hiển thị thông tin bổ sung về ổ cắm mạng.
  6. -u hoặc –udp: Cho lệnh ss chỉ hiển thị các kết nối UDP.
  7. -s hoặc –summary: Hiển thị tóm tắt thống kê kết nối.
  8. -l hoặc –listening: Hiển thị các ổ cắm nghe không được bao gồm theo mặc định.
  9. -p hoặc –process: Hiển thị quy trình sử dụng ổ cắm.
  10. -4 hoặc –ipv4: Cho lệnh ss chỉ hiển thị các kết nối IPv4.
  11. -6 hoặc –ipv6: Chỉ hiển thị các kết nối IPv6.
  12. -m hoặc –memory: Hiển thị mức sử dụng bộ nhớ ổ cắm.

Mặc dù trên đây là một số đối số cơ bản mà bạn sẽ sử dụng khi làm việc với ss, nó cũng hỗ trợ nhiều tùy chọn bổ sung. Tham khảo sách hướng dẫn để biết thêm thông tin.

Hiển thị các cổng nghe và không nghe

Để hiển thị thông tin về cả cổng nghe và cổng không nghe, bạn có thể sử dụng cờ -a như được hiển thị trong lệnh dưới đây:

ss -a

Bạn có thể chuyển đầu ra từ các lệnh ss để biết thêm thông tin cụ thể bằng cách sử dụng các công cụ như grep.

Ví dụ:

ss -a | grep ssh

Hiển thị kết nối TCP

Sử dụng cờ -t với lệnh ss, bạn có thể lọc để chỉ hiển thị các kết nối TCP như được hiển thị trong lệnh dưới đây:

ss -t

Để biết thêm thông tin, bạn có thể chỉ định hiển thị các kết nối TCP đang nghe bằng cách sử dụng cờ -l và -t như được hiển thị trong lệnh dưới đây:

sudo ss -tl

Hiển thị các kết nối UDP

Để hiển thị tất cả các kết nối UDP, hãy sử dụng cờ -l như được hiển thị trong lệnh dưới đây:

sudo ss -au

Hiểu dòng tiêu đề

Như bạn có thể thấy từ các đầu ra khác nhau được cung cấp trong các lệnh trên, ss hiển thị rất nhiều thông tin. Nó bao gồm định dạng tiêu đề trừ khi được chỉ định rõ ràng bằng cách sử dụng cờ -H, loại bỏ dòng tiêu đề.

Hiểu dòng tiêu đề có thể hữu ích để hiển thị thông tin nào trong một phần cụ thể. Nó bao gồm các hàng sau:

State, Recv-Q, Send-Q, Local Address: Port, Peer Address: Port
  1. Tiểu bang: Hàng trạng thái của tiêu đề cho biết trạng thái của kết nối, chẳng hạn như LISTEN, ESTABLISHED, CLOSED, TIME-WAIT, v.v. Hàng tiêu đề này hữu ích trong các kết nối TCP vì UDP không theo dõi trạng thái của các gói, khiến nó một giao thức không trạng thái.
  2. Recv-Q: Điều này cho thấy tổng số byte không được sao chép bởi chương trình được kết nối với ổ cắm cụ thể.
  3. Gửi-Q: Số lượng byte không phải là ACK của máy chủ từ xa.
  4. Địa chỉ địa phương: Cảng: Điều này hiển thị ổ cắm cục bộ và số cổng liên kết với kết nối
  5. Địa chỉ ngang hàng: Cổng: Ổ cắm từ xa và số cổng được ràng buộc cho kết nối.

Hiển thị các quy trình

Để có được quy trình bằng cách sử dụng socket cụ thể, bạn có thể sử dụng cờ -p như được hiển thị trong lệnh bên dưới:

sudo ss - tp

Như được hiển thị trong đầu ra ở trên, bạn có thể thấy các kết nối TCP của quá trình sử dụng socket, bao gồm cả PID của nó.

Lọc theo trạng thái kết nối (TCP)

Như bạn đã biết, TCP hỗ trợ các trạng thái khác nhau mà chúng ta sẽ không thảo luận trong hướng dẫn này. Tuy nhiên, bạn có thể lọc đầu ra ss để chỉ lấy các kết nối có trạng thái TCP được hỗ trợ.

sudo ss -t bang nghe

Bạn sẽ nhận thấy đầu ra trong hình trên không bao gồm trạng thái trong tiêu đề vì chúng tôi đã lọc đầu ra bằng cách sử dụng trạng thái được chỉ định. Do đó, chỉ các kết nối nghe được hiển thị.

Phần kết luận

Trong hướng dẫn này, chúng ta đã thảo luận về cách sử dụng và hiểu tiện ích lệnh ss. Nó là một công cụ mạnh mẽ khi bạn cần nhìn xa hơn các quy trình liệt kê. Để hiểu cách thức hoạt động, bạn có thể tìm hiểu thêm từ sách hướng dẫn chính thức.

Hãy xem xét tài nguyên sau:

https://en.wikipedia.org/wiki/Iproute2

http://www.policyrouting.org/iproute2.doc.html