Cách sử dụng lệnh ss trong Linux

Lệnh ss sẽ hiển thị các số liệu của:
  • Transmission Control Protocol (TCP)
  • User Datagram Protocol (UDP)
  • Unix (interprocess)
  • Raw socket
Raw socket hoạt động ở mạng cấp OSI, có nghĩa là giao thức TCP và UDP phải được xử lý bởi phần mềm, chứ không phải bởi lớp vận chuyển. Các tin nhắn của Internet Control Message Protocol (ICMP) và tiện ích ping đều sử dụng raw socket.

Liệt kê các kết nối mạng

Gõ lệnh sau: ss
Các cột sẽ lần lượt xuất hiện như sau:
  • Netid: Các loại socket.
  • State: Tình trạng socket.
  • Recv-Q: Số lượng packet nhận được.
  • Send-Q: Số lượng packet gửi đi.
  • Local Address:Port: Địa chỉ cục bộ và cổng (hoặc những giá trị tương đương cho Unix socket).
  • Peer Address:Port: Địa chỉ từ xa và cổng (hoặc giá trị tương đương cho Unix socket).

Danh sách những socket đang hoạt động

Để xem những socket đang hoạt động, thêm -l (listening) vào lệnh như sau: ss -l

Liệt kê tất cả các socket

Để liệt kê tất cả các socket, bạn có thể sử dụng lựa chọn -a (all): ss -a
Kết quả sẽ bao gồm tất cả các socket bất kể tình trạng.

Liệt kê các socket TCP

Bạn có thể sử dụng một bộ lọc, chỉ lấy những socket cần hiển thị. Ở đây, chúng ta sử dụng lựa chọn -t (TCP), chỉ những socket TCP mới được liệt kê ra: ss -a -t

Liệt kê các socket UDP

Lựa chọn -u (UDP) cũng là bộ lọc tương tự. Sử dụng nếu bạn chỉ muốn thấy socket UDP: ss -a -u

Liệt kê các socket Unix

Để thấy các socket Unix, bạn có thể thêm -x (Unix) vào dòng lệnh như sau: ss -a -x

Liệt kê các raw socket

Để lọc raw socket, thêm -w (raw): ss -a -w

Liệt kê socket IP phiên bản 4

Socket sử dụng giao thức TCP/IP phiên bản 4 có thể được liệt kê bằng cách sử dụng lựa chọn -4 (IPV4): ss -a -4

Liệt kê socket IP phiên bản 6

Bạn có thể dùng -6 (IPV6) để tìm những socket IP phiên bản 6: ss -a -6

Liệt kê socket theo tình trạng

Bạn có thể liệt kê socket theo tình trạng. Nó sẽ chia làm các loại tình trạng như established, closed, closing, close-wait, listening, listen, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, last-ack, all (Bao gồm tất cả các loại trạng thái), connected (Bao gồm tất cả các loại trạng thái ngoại trừ listen và closed), synchronized (Bao gồm tất cả các loại trạng thái ngoại trừ syn-sent), bucket, big
Ví dụ: ss -t -r state established, ss -t -r state close-wait, ss -t -r state connected

Liệt kê socket theo giao thức

Nhập nội dung sau để liệt kê các socket theo giao thức HTTPS trên một kết nối đã thiết lập:
   ss -a state established ' ( dport = :https or sport = :https ) '
Nhập nội dung sau để liệt kê các socket theo giao thức SMTP trên một kết nối đã thiết lập
   ss -a state established ' ( dport = :smtp or sport = :smtp ) '

Liệt kê các kết nối tới địa chỉ IP đặc biệt

Với lại chọn dst, bạn có thể liệt kê các kết nối tới một địa chỉ IP nhất định: ss -a dst 142.250.72.110

Xác định quy trình

Để xem các quy trình đang sử dụng socket, bạn có thể sử dụng tùy chọn quy trình (-p), như hiển thị bên dưới (lưu ý phải sử dụng sudo): sudo ss -t -p