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. 【GMT43智能液晶模块】例程十四:MODBUS TCP实验——电源监控

    . 源代码下载链接: 链接:https://pan.baidu.com/s/1S8wZBJBYGxuPaWEkJvMJlg 提取码:5bh3 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT ...

  2. DTLZ

    DTLZ 开新坑,未完待续 觉得有用的话,欢迎一起讨论相互学习~Follow Me Reference [1] Multiobjective Immune Algorithm with Nondomi ...

  3. Houdini Python开发实战 课程笔记

    P2 + P3 + P4 + P5 - 基础: 1. Houdini中使用Python的地方 2. Textport:可使用cd.ls等路径操作的命令(命令前加%,可在python中使用) 3. So ...

  4. Houdini Mac 添加external editor

     我的尝试: 1. 找到houdini.env文件 2. 修改env文件,添加 EDITOR = ""/Applications/Sublime Text.app/Contents ...

  5. LeetCode_461. Hamming Distance

    461. Hamming Distance Easy The Hamming distance between two integers is the number of positions at w ...

  6. JMETER - 连接MySQL数据库_函数助手_随机登录

    1. 导入mysql-connect.jar包 2. 添加配置原件-jdbc connection config 3. 添加jdbc请求 填写信息 4. 连接数据库 OK 5. 增加语句:jdbc r ...

  7. FastJson序列化时过滤字段(属性)的方法总结

    FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法. 方法一.FastJson的注解 @JSONField(serialize ...

  8. RabbitMQ中文文档PHP版本(三)--工作队列

    2019年12月10日09:57:52 原文:https://www.rabbitmq.com/tutorials/tutorial-two-php.html

  9. 常用的js片段

    1.检查是否为微信浏览器 function isWxBrowser() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/Micr ...

  10. [ARM-Linux开发] 主设备号--驱动模块与设备节点联系的纽带

    一.如何对设备操作 linux中对设备进行操作是通过文件的方式进行的,包括open.read.write.对于设备文件,一般称其为设备节点,节点有一个属性是设备号(主设备号.次设备号),其中主设备号将 ...