Một số ví dụ về cách sử dụng lệnh SS trên Linux và Ubuntu, lệnh SS trong Linux là một công cụ cung cấp thông tin về network/socket kết nối hay hơn và nhanh hơn rất nhiều so với lệnh netstat. Lệnh ss cũng dần được thay thế công cụ netstat trên 1 số hệ thống mới.
21 ví dụ về cách sử dụng lệnh SS trên Linux & Ubuntu
Netstat phải đọc thông tin files trong thư mục /proc để thu thập dữ liệu hiển thị, cách tiếp cận này sẽ khó khăn nếu hệ thống có quá nhiều kết nối tới. Lệnh ss thì sẽ lấy dữ liệu trực tiếp từ kernel space nên nhanh hơn.

1. Liệt kê các kết nối đã thiết lập
Theo mặc định, nếu chúng ta chạy lệnh ss trên linux | ubuntu mà không có thêm option, nó sẽ hiển thị danh sách non-listening sockets đang mở đã thiết lập kết nối, ví dụ như các sockets TCP, UDP hoặc UNIX.
ss | head -n 5
Trong ví dụ trên itsmeit.net đã thấy hơn 500 dòng được hiển thị bằng cách chạy lệnh ss, vì vậy bạn có thể thêm option say ss dễ dàng đọc, nhìn thấy.
2. Hiển thị Listening Sockets
Thay vì liệt kê tất cả các sockets, chúng ta có thể sử dụng tùy chọn -l để liệt kê cụ thể các sockets listening đang kết nối.
ss -lt

3. Hiển thị Processes SS Command in Linux
Lệnh SS trên Linux & Ubuntu hiển thị Processes hoặc số PID sở hữu một sockets với tùy chọn -p.
ss -pl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 :::http :::*
...
4. Không phân giải Service Names
Theo mặc định, lệnh ss linux sẽ chỉ giải quyết số cổng như chúng ta đã thấy trước đây, ví dụ trong dòng bên dưới, chúng ta có thể thấy 192.168.1.14:ssh trong đó ssh được liệt kê là cổng cục bộ.
ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 64 192.168.1.14:ssh 192.168.1.191:57091
Tuy nhiên nếu chỉ định tùy chọn -n, giải pháp này sẽ không diễn ra và thay vào đó chúng tôi sẽ thấy số cổng thay vì tên dịch vụ.
ss -n
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.1.14:22 192.168.1.191:57091
5. Giải quyết Address/Ports Number
Có thể làm ngược lại với điều này và giải quyết cả địa chỉ IP và số cổng với tùy chọn -r. Với điều này, bây giờ chúng ta thấy tên máy chủ của máy chủ 192.168.1.14 được liệt kê khi dùng các câu lệnh ss trên linux & ubuntu.
ss -r
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 64 itsmeit.net:ssh 192.168.1.191:57091
6. IPv4 Sockets
Sử dụng option-4 để chỉ hiển thị thông tin tương ứng với các IPv4 sockets. Trong ví dụ về lệnh ss trên linux | ubuntu dưới đây, itsmeit cũng sử dụng option -l để liệt kê mọi thứ listening IPv4.
ss -l4
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.1:323 *:*
udp UNCONN 0 0 192.168.122.1:domain *:*
...
7. IPv6 Sockets
Lệnh SS trên Linux | ubuntu : IPv6 tương tự IPv4 Sockets, chúng ta có thể sử dụng tùy chọn -6 để chỉ hiển thị thông tin liên quan đến IPv6 sockets. Trong ví dụ về lệnh ss trên linux | ubuntu dưới đây, chúng tôi cũng sử dụng tùy chọn -l để liệt kê mọi thứ listening IPv6.
ss -l6
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 :::ipv6-icmp :::*
udp UNCONN 0 0 :::22834 :::*
udp UNCONN 0 0 ::1:323 :::*
tcp LISTEN 0 128 :::sunrpc :::*
8. TCP Only
Option -t có thể được sử dụng để chỉ hiển thị sockets TCP. Khi kết hợp với -l để chỉ hiển thị các listening socket, chúng ta có thể thấy mọi thứ TCP listening đang hoạt động.
ss -lt

9. UDP Only
Option -u có thể được sử dụng để chỉ hiển thị các socket UDP. Vì UDP là giao thức không cần kết nối, chạy với option -u sẽ không hiển thị đầu ra. Thay vào đó, có thể kết hợp điều này với option -a hoặc -l để xem tất cả các listening socket UDP.
ss -ul
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:mdns *:*
UNCONN 0 0 *:kpasswd *:*
UNCONN 0 0 *:839 *:*
UNCONN 0 0 *:36812 *:*
UNCONN 0 0 192.168.122.1:domain *:*
UNCONN 0 0 192.168.1.14:domain *:*
10. Unix Sockets
Lệnh SS trên Linux | ubuntu với option -x chỉ có thể được sử dụng để hiển thị các socket unix.
ss -x
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 @/tmp/.X11-unix/X0 27818 * 27817
u_str ESTAB 0 0 @/tmp/.X11-unix/X0 26656 * 26655
u_str ESTAB 0 0 * 28344 * 26607
u_str ESTAB 0 0 * 24704 * 24705
11. Lệnh ss Linux & Ubuntu: Display All Information
Option -a hiển thị tất cả, cả listening và non-listening sockets. Trong trường hợp TCP, điều này có nghĩa là các kết nối đã được thiết lập. Tùy chọn này hữu ích để kết hợp với những người khác, chẳng hạn như để hiển thị tất cả các sockets UDP mà chúng tôi có thể thêm -a, như theo mặc định, chỉ với option -u, sẽ không thấy nhiều thông tin.
ss -u
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.1.14:56658 129.250.35.251:ntp
ss -ua
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:mdns *:*
UNCONN 0 0 127.0.0.1:323 *:*
ESTAB 0 0 192.168.1.14:56658 129.250.35.251:ntp
UNCONN 0 0 *:21014 *:*
UNCONN 0 0 *:60009 *:*
UNCONN 0 0 192.168.122.1:domain *:*
UNCONN 0 0 *%virbr0:bootps *:*
UNCONN 0 0 *:bootpc *:*
UNCONN 0 0 ::1:323 :::*
UNCONN 0 0 :::43209 :::*
12. Hiển thị Socket Memory đang sử dụng
Option -m có thể được sử dụng để hiển thị dung lượng bộ nhớ mà mỗi sockets đang sử dụng.
ss -ltm
13. Hiển thị Internal TCP Information
Lệnh SS trên Linux | Ubuntu có thể yêu cầu thông tin TCP nội bộ bổ sung với option -i.
ss -lti
Bên dưới mỗi listening socket , chúng ta có thể thấy thông tin bổ sung. Lưu ý rằng tùy chọn -i không hoạt động với UDP, nếu thay vào đó bạn chỉ định -u thay vì -t, thông tin bổ sung này sẽ không xuất hiện.
14. Hiển thị tóm tắt
Chúng ta có thể xem tổng quan nhanh về thống kê với tùy chọn -s.
ss -s
Total: 1253 (kernel 1721)
TCP: 13 (estab 1, closed 2, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 1721 - -
RAW 1 0 1
UDP 9 7 2
TCP 11 6 5
INET 21 13 8
FRAG 0 0 0
Lệnh ss trên linux | Ubuntu với option -s cho phép xem những thứ như tổng số kết nối đã thiết lập, cũng như số lượng của từng loại socket và liệu IPv4 hay IPv6 đang được sử dụng.
15. Filter dựa trên trạng thái
Chúng ta có thể chỉ định trạng thái của một socket để chỉ hiện các socket ở trạng thái này.
– Ví dụ, chúng ta có thể chỉ định các trạng thái bao gồm thiết lập, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, close, closed-wait, last-ack, listening và close.
Ví dụ dưới đây cho thấy tất cả các kết nối TCP đã thiết lập. Để tạo điều này, tôi đã kết nối với máy chủ bằng SSH và vừa tải một trang web từ Apache. Sau đó, chúng ta có thể thấy rằng các kết nối đến Apache nhanh chóng chuyển sang thời gian chờ.
ss -t state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 64 192.168.1.14:ssh 192.168.1.191:57091
0 0 ::ffff:192.168.1.14:http ::ffff:192.168.1.191:57373
0 0 ::ffff:192.168.1.14:http ::ffff:192.168.1.191:57372
ss -t state time-wait
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 ::ffff:192.168.1.14:http ::ffff:192.168.1.191:57373
0 0 ::ffff:192.168.1.14:http ::ffff:192.168.1.191:57372
Lệnh ss trên linux | Ubuntu với option -t (ví dụ minh họa)
16. Bộ lọc dựa trên số port
Lệnh SS trên Linux | Ubuntu với filter cũng có thể được thực hiện để liệt kê tất cả các port nhỏ hơn (lt), lớn hơn (gt), bằng (eq), không bằng (ne), nhỏ hơn hoặc bằng (le), hoặc lớn hơn hoặc bằng thành (ge).
ss -ltn sport le 500
17. Hiển thị SELinux Context
Các option -Z và -z hiển thị ngữ cảnh bảo mật SELinux của một socket. Trong ví dụ bên dưới, các tùy chọn -t và -l để chỉ liệt kê listening TCP sockets, với tùy chọn -Z, cũng có thể xem các ngữ cảnh SELinux.
ss -tlZ
18. Hiển thị Version
Option -v hiển thị thông tin phiên bản cụ thể cho lệnh ss, trong trường hợp này, chúng ta thấy phiên bản của gói iproute cung cấp ss.
ss -v
ss utility, iproute2-ss200127
19. Print Help Documentation
Lệnh SS trên Linux | Ubuntu với option -h hiển thị thêm trợ giúp liên quan đến lệnh ss, rất tốt để sử dụng làm tài liệu tham khảo nhanh nếu bạn cần mô tả ngắn về một số tùy chọn thường được sử dụng nhất.
ss -h
20. Hiển thị thông tin mở rộng
Option -e để hiển thị thông tin chi tiết mở rộng
ss -lte
21. Hiển thị Timer Information
Option -o có thể được sử dụng để hiển thị thông tin hẹn giờ. Thông tin này cho chúng ta thấy những thứ như giá trị bộ đếm thời gian truyền lại, số lần truyền lại đã xảy ra và số lượng các thăm dò lưu giữ đã được gửi.
ss -to
Qua bài viết này bạn sẽ có một ý tưởng tốt về cách sử dụng lệnh SS trên Linux | Ubuntu để nhanh chóng kiểm tra các thông tin khác nhau liên quan đến sockets. Bạn có thể chạy lệnh ss -h để biết thêm thông tin về cách sử dụng các option.
— Xem thêm : Lệnh Netstat trong Linux cho SysAdmins và 40 ví dụ netstat
– Advertising –
Good article. I will be going through many of these issues as well..
Thanks for your comment.