linux ss

发布时间 2023-08-01 09:28:29作者: 章怀柔

一 ss 是什么

ss 全称是Socket Statistics,用于显示各种socket的信息,ss命令功能和netstat类似,ss的优势在于它显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss 命令可以提供如下信息:

所有的TCP sockets
所有的UDP sockets
所有ssh/ftp/ttp/https持久连接
所有连接到Xserver的本地进程
使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤

二 常用的命令

基于状态的过滤器

通过指定的state,显示该状态的套接字信息。这些状态包括 established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait, last-ack监听和关闭等状态。

查看进程使用的socket

ss –pl

找出打开套接字/端口应用程序

ss -lp | grep 22

显示所有状态为established的连接,-o 会显示连接已经建立多长时间

ss -o state 'established'

ss列出所有状态为established的 mysql 连接

ss -o state established '( dport = :mysql or sport = : mysql )'

 

列出当前已经连接,关闭,等待的tcp连接

ss -s

 

ss使用IP地址筛选

ss src|dst ip_address[:port]

src 表示本地 dst表示远端ip

ss src 10.98.145.36

为什么ss比netstat快

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多。

 

更多的用法大家可以动手实践一下,ss --help 。

转载自杨奇龙博客