Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Lệnh ss là phương pháp mới thay thế cho netstat kinh điển. Bạn có thể sử dụng nó trên Linux để lấy số liệu về các kết nối mạng. Dưới đây là cách làm việc với công cụ hữu ích này.
Thay thế cho lệnh netstat đã cũ, lệnh ss cung cấp cho bạn những thông tin về giao tiếp giữa máy tính của bạn và máy tính khác, mạng và các dịch vụ khác.
Lệnh ss sẽ hiển thị các số liệu của Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Unix (interprocess) và các 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.
Bạn không phải cài đặt lệnh ss, nó đã có sẵn trên các phiên bản mới nhất của các bản phân phối Linux. Tuy nhiên, kết quả của lệnh này có thể vừa dài vừa rộng.
Gõ lệnh sau:
ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
u_str ESTAB 0 0 * 41826 * 41827
u_str ESTAB 0 0 /run/systemd/journal/stdout 35689 * 35688
u_str ESTAB 0 0 * 35550 * 35551
...
u_str ESTAB 0 0 * 38127 * 38128
u_str ESTAB 0 0 /run/dbus/system_bus_socket 21243 * 21242
u_str ESTAB 0 0 * 19039 * 19040
u_str ESTAB 0 0 /run/systemd/journal/stdout 18887 * 18885
u_str ESTAB 0 0 /run/dbus/system_bus_socket 19273 * 17306
icmp6 UNCONN 0 0 *:ipv6-icmp *:*
udp ESTAB 0 0 192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps
Các cột sẽ lần lượt xuất hiện như sau:
Đối với socket UDP cột State thường để trống. Với socket TCP nó có thể là một trong những phần sau:
Để xem những socket đang hoạt động, thêm -l(listening) vào lệnh như sau:
ss -l
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
nl UNCONN 0 0 rtnl:NetworkManager/535 *
nl UNCONN 0 0 rtnl:evolution-addre/2987 *
...
u_str LISTEN 0 4096 /run/systemd/private 13349 * 0
u_seq LISTEN 0 4096 /run/udev/control 13376 * 0
u_str LISTEN 0 4096 /tmp/.X11-unix/X0 33071 * 0
u_dgr UNCONN 0 0 /run/systemd/journal/syslog 13360 * 0
u_str LISTEN 0 4096 /run/systemd/fsck.progress 13362 * 0
u_dgr UNCONN 0 0 /run/user/1000/systemd/notify 32303 * 0
Tất cả những socket này đều không có kết nối và đang hoạt động. “rtnl” nghĩa là routing netlink, sử dụng để truyền thông tin giữa kernel và các tiến trình userspace.
Để liệt kê tất cả các socket, bạn có thể sử dụng lựa chọn -a(all):
ss -a
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
nl UNCONN 0 0 rtnl:NetworkManager/535 *
nl UNCONN 0 0 rtnl:evolution-addre/2987 *
...
u_str LISTEN 0 100 public/showq 23222 * 0
u_str LISTEN 0 100 private/error 23225 * 0
u_str LISTEN 0 100 private/retry 23228 * 0
...
udp UNCONN 0 0 0.0.0.0:631 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:*
...
tcp LISTEN 0 128 [::]:ssh [::]:*
tcp LISTEN 0 5 [::1]:ipp [::]:*
tcp LISTEN 0 100 [::1]:smtp [::]:*
Kết quả sẽ bao gồm tất cả các socket bất kể tình trạng.
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
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
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
UNCONN 0 0 0.0.0.0:631 0.0.0.0:*
UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:*
UNCONN 0 0 0.0.0.0:60734 0.0.0.0:*
UNCONN 0 0 127.0.0.53%lo:domain 0.0.0.0:*
ESTAB 0 0 192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps
UNCONN 0 0 [::]:mdns [::]:*
UNCONN 0 0 [::]:51193 [::]:*
Để 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
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
u_str ESTAB 0 0 * 41826 * 41827
u_str ESTAB 0 0 * 23183 * 23184
u_str ESTAB 28 0 @/tmp/.X11-unix/X0 52640 * 52639
...
u_str ESTAB 0 0 /run/systemd/journal/stdout 18887 * 18885
u_str ESTAB 0 0 /run/dbus/system_bus_socket 19273 * 17306
Để lọc raw socket, thêm -w (raw):
ss -a -w
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
Bạn có thể dùng -6 (IPV6) để tìm những socket IP phiên bản 6:
ss -a -6
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ư đã thành lập, đang hoạt động hoặc đã đóng.
Dùng lệnh sau nếu muốn tìm những kết nối TCP đã thành lập, lệnh ss sẽ liệt kê theo tên:
ss -t -r state established
Bốn kết nối được liệt kê đều ở trong tình trạng đã thành lập. Tên mạng chủ, ubuntu20-04, đã được giải quyết và “ssh” đã thể hiện thay vì 22 cho kết nối SSH ở dòng thứ hai.
Bạn có thể liệt kê socket sử dụng một giao thức đặc biệt như dport và sport, tương ứng với các cổng đích và cổng nguồn.
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 (lưu ý mở khoảng trắng sau dấu ngoặc đơn và trước khi đóng):
ss -a state established ‘( dport = :https or sport = :https )’
Bạn có thể sử dụng tên giao thức hoặc cổng thường kết nối với giao thức. Cổng mặc định cho SSH là cổng 22.
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.
Dùng lệnh sau:
ss -a dst 192.168.4.25
Để 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
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 192.168.4.28:57650 54.218.19.119:https users:(("firefox",pid=3378,fd=151))
ESTAB 0 0 192.168.4.28:ssh 192.168.4.25:43946 users:(("sshd",pid=4086,fd=4),("sshd",pid=3985,fd=4))
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn