ss(Socket Statistics) - another utility to investigate sockets(研究套接字的另一个实用程序,原先的是netstat)

ss用于转储套接字统计信息。它允许显示类似于netstat的信息。它可以显示更多的TCP和状态信息

工具。

语法格式:

ss [options] [ FILTER ]

[options]

  • -n --numeric:不解析服务名称
  • -r --resolve:解析服务名称
  • -a --all:显示所有套接字
  • -l --listen:显示监听状态的套接字
  • -o --option:显示计时器信息
  • -p --processes:显示进程
  • -4 --ipv4:显示ipv4相关信息
  • -6 --ipv6:显示ipv6相关信息
  • -s --summary:显示socket概况
  • -t --tcp:显示tcp套接字
  • -u --udp:显示udp套接字
  • -d --dccp:显示dccp套接字
  • -w --raw:显示raw套接字
  • -x --unix:显示unix套接字

state-filter(状态过滤):

状态过滤器允许构造任意一组要匹配的状态。

格式:

ss [option] stat [state-filter] [ EXPRESSION ]

[state-filter]:

所有标准的tcp状态:established,syn-sent,syn-recv,fin-wait-1,fin-wait-2,time-wait,closed,close-wait,last-ack,listen,closing。每个状态什么意思,自己了解tcp相关信息。

  • all :所有状态
  • connected :所有状态,除了listenclosed
  • synchronized :所有的connected,除了syn-sent
  • bucket :显示状态为maintained as minisockets,如:time-wait和syn-recv.
  • big :和bucket相反

[ EXPRESSION ]

  • dport :目标端口
  • sport :源端口

    其它参考官方文档

示例一:

[root@node1 ~]# ss -n state all '( sport = :ssh )'  #查看对ssh端口的所有状态
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 *:22 *:*
tcp ESTAB 0 0 192.168.2.88:22 192.168.2.230:24746
tcp ESTAB 0 0 192.168.2.88:22 192.168.2.55:54205
tcp LISTEN 0 128 :::22 :::* [root@node1 ~]# ss -n state connected '( sport = :ssh )' #查看ssh端口的connect状态信息 ,其实这里加个 | wc -l 就能查看有多个个connected了。
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.2.88:22 192.168.2.230:24746
tcp ESTAB 0 0 192.168.2.88:22 192.168.2.55:54205 [root@node1 ~]$ ss -n state connected '( sport = :443 )'| wc -l #查看web服务器当前有多少个连接状态
435 [root@node1 ~]# ss -n state connected '( sport = :ssh )' dst 192.168.2.55 #查看ssh connect状态,并且目标地址是192.168.2.55的信息
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.2.88:22 192.168.2.55:54205

这里的sportdst都和标准的理解中的意思完全相反了。源端口变成本机的目标端口,只要记住是反转的,即可。

示例二:

~]$ netstat -an|grep 8081|awk '{count[$6]++} END{for (i in count) print(i,count[i])}'
TIME_WAIT 41
ESTABLISHED 27
LISTEN 1 ~]$ ss -n state established '( sport = :8081 )' | wc -l #查看单个连接属性有多少个
27 ~]$ ss -an | grep 8081|awk '{count[$1]++} END{for (i in count) print(i,count[i])}'
...

示例三:

~]# ss -tanlp     #常用命令组合
users:(("python3.5",pid=10052,fd=43))
LISTEN 0 128 *:22 *:* users:(("sshd",pid=4125,fd=3))
LISTEN 0 128 *:8888 *:* users:(("jupyter-noteboo",pid=5375,fd=4))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=4125,fd=4))
LISTEN 0 128 ::1:631 :::* users:(("cupsd",pid=4122,fd=11))
LISTEN 0 100 ::1:25 :::* users:(("master",pid=4222,fd=14))
...

比较netstatss哪个运行速度更快,具体原理可自行google,但实验可以得到哪个命令更快。

~]$ time netstat -ant | grep EST | wc -l
408 real 0m0.111s
user 0m0.007s
sys 0m0.098s
~]$ time ss -ant state established | wc -l
423 real 0m0.022s
user 0m0.006s
sys 0m0.018s

ss-套接字监控工具的更多相关文章

  1. Linux 命令 - ss: 查看套接字统计信息

    命令格式 ss [options] [ FILTER ] 命令参数 -h, --help 显示帮助信息. -V, --version 显示版本信息. -n, --numeric 不解析服务名称. -r ...

  2. linux netlink套接字实现相似ss命令 ,统计套接字以及TCP信息

    參考了 ss的源码 以及 netlink相关资料:http://blog.csdn.net/scdxmoe/article/details/27711205 实现结果为: gcc netlink_di ...

  3. ss命令用来显示处于活动状态的套接字信息。

    ss命令用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比net ...

  4. 使用TCP/IP的套接字(Socket)进行通信

    http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socket的引入 ...

  5. 套接字编程相关函数(2:TCP套接字编程相关函数)

    本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...

  6. Day9 基于TCP的套接字和基于UDP的套接字

    服务端: ss=socket() #创建服务器套接字 ss.bind() #把地址绑定到套接字 ss.listen() #监听套接字, inf_loop: #服务器无限循环 cs=ss.accept( ...

  7. python套接字编程基础

    python套接字编程 目录 socket是什么 套接字的工作流程 基于tcp的套接字 基于udp的套接字 socket是什么 客户端/服务器架构(C/S架构) 服务端:提供服务的一端 客户端:请求服 ...

  8. python之udp协议的套接字

    udp是无链接的,先启动哪一端都不会报错 udp服务端 1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 ...

  9. Python Web学习笔记之socket套接字

    套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了建立通信通道,网络通信 ...

  10. day29 python 套接字socket TCP udp 形式发送信息的区别

    我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在 ...

随机推荐

  1. 【loj6538】烷基计数 加强版 加强版 Burnside引理+多项式牛顿迭代

    别问我为啥突然刷了道OI题,也别问我为啥花括号不换行了... 题目描述 求含 $n$ 个碳原子的本质不同的烷基数目模 $998244353$ 的结果.$1\le n\le 10^5$ . 题解 Bur ...

  2. phpspreadsheet 中文文档 粗翻版

    2019年10月11日09:32:33 官方使用文档  https://phpspreadsheet.readthedocs.io/en/stable/topics/accessing-cells/ ...

  3. vue-cli入门 - 搭建项目打包运行+webpack打包

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_38225558/article/d ...

  4. ng2 空标签

    <ng-container *ngIf="v.products"> <li class="clearfix" *ngFor="let ...

  5. Linux下安装配置rocketmq

    1.安装jdk,如果系统有原来的系统自带的先删掉,因为很多库不全,自己需要到jdk官网下载包. 卸载CentOS自带的OpenJdk: [root@centos-lx /]# rpm -qa | gr ...

  6. Zabbix 3.0 配置企业微信报警(注册---测试)

    一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...

  7. 百度AI身份证识别demo,使用js提交图片数据

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  8. webapi+swagger ui 文档描述

    代码:GitHub swagger ui在我们的.NET CORE和.NET Framework中的展现形式是不一样的,如果有了解的,在.NET CORE中的是比.NET Framework好的.两张 ...

  9. Git 初始仓库

    配置好环境后,通常有两种方式使用git,一种从git仓库上克隆,进行操作,一种是在本地创建并初始仓库,进行操作.工作中前者比较多见. 下面演示如何在本地创建仓库. 1.新建一个目录 # mkdir t ...

  10. Java开发笔记(一百四十六)JDBC的应用原理

    关系数据库使得海量信息的管理成为现实,但各家数据库提供的编程接口不尽相同,就连SQL语法也有所差异,像Oracle.MySQL.SQL Server都拥有自己的开发规则,倘若Java针对每个数据库单独 ...