ss(Socket Statistics)-用来追踪socket信息的工具。
描述:
显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。
使用说明:
Options:
-h, --help 帮助
-V, --version 显示版本号
-n, --numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"
-r, --resolve 把IP解释为域名,把端口号解释为协议名称
-a, --all 显示所有socket,对TCP协议来说,既包含监听的端口,也包含建立的连接。
-l, --listening 显示LISTEN状态的连接(连接打开)
-o, --options 显示计时器信息
-e, --extended 显示详细的连接信息
-m, --memory 显示内存信息(用于tcp_diag)
-p, --process 显示使用连接的进程信息
-i, --info 显示内部的TCP信息
-s, --summary 显示连接使用的统计信息
-b, --bpf 显示bpf过滤连接信息
-E, --events 继续显示连接信息当他们被摧毁时
-Z, --context 显示SELinux安全控制信息
-z, --contexts 显示SELinux安全控制策略信息和进程
-N, --net 切换到制定的网络
-4, --ipv4 仅显示IPV4连接
-6, --ipv6 仅显示IPV6连接
-0, --packet 显示PACKET连接
-t, --tcp 仅显示TCP连接
-S, --sctp 仅显示SCTP连接
-u, --udp 仅显示UDP连接
-d, --dccp 仅显示DCCP连接
-w, --raw 仅显示RAW连接
-x, --unix 仅显示Unix域连接
--vsock 仅显示vsock连接
-f, --family=FAMILY 显示指定类型为FAMILY的套接字,选项可以为{inet|inet6|link|unix|netlink|vsock|help}
-K, --kill 强制关闭连接,并显示关闭的连接
-H, --no-header 隐藏header line
-A, --query=QUERY, --socket=QUERY 查询指定类型的连接{all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_stream|vsock_dgram}
-D, --diag=FILE 将TCP连接信息存放到文件
-F, --filter=FILE 从文件中读取过滤信息
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
Examples:
1. 查看主机监听的端口
2. 解析ip和端口号
3. 查看监听端口的进程
4. 列出所有连接8080端口的连接和对端口的监听
网友评论