0
点赞
收藏
分享

微信扫一扫

ss

1、概述

是 Socket Statistics 的缩写,用来显示处于活动状态的套接字信息,iproute2 包附带的一个工具

它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快

当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢,此时应使用ss

 

2、语法,参数

ss [参数]
ss [参数] [过滤]

 

参数

 

说明

备注

-h

--help

帮助信息

 

-V

--version

程序版本信息

 

-n

--numeric

不解析服务名称

 

-r

--resolve

解析主机名

 

-a

--all

显示所有监听的端口及建立的连接

 

-l

--listening

显示监听状态的端口

 

-o

--options

显示计时器信息

 

-e

--extended

显示详细的套接字(sockets)信息

 

-m

--memory

显示套接字(socket)的内存使用情况

 

-p

--processes

显示监听端口的进程

 

-i

--info

显示 TCP内部信息

 

-s

--summary

显示套接字(socket)使用概况

 

-4

--ipv4

仅显示IPv4的套接字

 

-6

--ipv6

仅显示IPv6的套接字

 

-0

--packet

显示 PACKET 套接字

 

-t

--tcp

仅显示使用TCP协议的

 

-u

--udp

仅显示使用UDP协议的

 

-d

--dccp

仅显示使用DCCP协议的

 

-w

--raw

仅显示 RAW套接字(sockets)

 

-x

--unix

仅显示 Unix套接字(sockets)

 

-f

--family=FAMILY

显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink

 

-A

--query=QUERY, --socket=QUERY

QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

 

-D

--diag=FILE

将原始TCP套接字(sockets)信息转储到文件

 

-F

--filter=FILE

从文件中除去过滤器信息

 

 

3、每列含义

使用ss不加参数,默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接

ss_TCP

列名

含义

Netid

网络标识符

State

每个服务的连接状态

Recv-Q

接收socket(套接字)队列中的数据量,以字节为单位

Send-Q

发送socket(套接字)队列中的数据量,以字节为单位

Local Address:Port

运行本地的计算机地址及端口

Peer Address:Port

对端地址及端口

 

4、实例

按网络传输类型显示总体统计信息

[root@mysql ~]# ss -s
Total: 37360 (kernel 48199)
TCP:   21430 (estab 2, closed 21420, orphaned 5, synrecv 0, timewait 119/0), ports 0

Transport Total     IP        IPv6
*      48199     -         -        
RAW      0         0         0        
UDP      2         2         0        
TCP      10        6         4        
INET      12        8         4        
FRAG      0         0         0

ss -tln

显示使用tcp协议监听的端口

ss -tlnp

显示使用tcp协议监听的端口及进程信息

ss -tan

显示使用tcp协议监听的端口及连接信息

ss -talnp

显示使用tcp协议监控的端口,进程和连接信息

ss  -tan|awk 'NR>1{++S[$1]}END{for (a in S) print a,S[a]}'

统计tcp连接状态及数量

 

5、匹配远程与本地地址和端口号

  • dst:过滤连接的目标地址
  • src:过滤连接的本地地址
  • dport:目标端口
  • sport:来源端口

实例

#匹配本地端口和端口号
ss src 192.168.157.166
ss src 192.168.157.166:22
ss src 192.168.157.166:ssh

#匹配远程地址和端口号
ss dst 192.168.157.33
ss dst 192.168.157.33:443
ss dst 192.168.157.33:http

 

6、将本地与远程端口和一个数进行比较

语法:
ss dport OP num
ss sport OP num

OP 可以代表以下任意一个

<=

le

小于或等于某个端口号

>=

ge

大于或等于某个端口号

==

eq

等于某个端口号

!=

ne

不等于某个端口号

>

gt

大于某个端口号

<

lt

小于某个端口号

实例

#显示来源端口小于50的端口号的内容
ss -tuln sport lt 50

#如果要用符号,则需要在符号前面加上转义符
ss -tuln sport \< 50

 

7、通过 TCP 的状态进行过滤

 支持的TCP状态:

established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listening
closing

connected      列出除了 listening 和 closing 之外的所有 TCP 状态
synchronized    列出除了 syn-sent 之外的所有 TCP 状态
bucket        列出 maintained 的状态,如:time-wait 和 syn-recv
big           列出和 bucket 相反的状态

实例

#显示所有状态为 established 的连接
ss state established

#过滤ipv4的地址
ss -4n state established

#显示所有状态为 Established 的 HTTP 连接
ss state established '( sport = :http or dport = :http )'
ss state established \( sport = :http or dport = :http \)

#所有连接到 22 端口的连接和对 22 端口的监听
ss state all dport = :22

 



举报

相关推荐

0 条评论