ss-套接字监控工具
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 :所有状态,除了
listen和closed - 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
这里的sport和dst都和标准的理解中的意思完全相反了。源端口变成本机的目标端口,只要记住是反转的,即可。
示例二:
~]$ 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))
...
比较netstat和ss哪个运行速度更快,具体原理可自行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-套接字监控工具的更多相关文章
- Linux 命令 - ss: 查看套接字统计信息
命令格式 ss [options] [ FILTER ] 命令参数 -h, --help 显示帮助信息. -V, --version 显示版本信息. -n, --numeric 不解析服务名称. -r ...
- linux netlink套接字实现相似ss命令 ,统计套接字以及TCP信息
參考了 ss的源码 以及 netlink相关资料:http://blog.csdn.net/scdxmoe/article/details/27711205 实现结果为: gcc netlink_di ...
- ss命令用来显示处于活动状态的套接字信息。
ss命令用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比net ...
- 使用TCP/IP的套接字(Socket)进行通信
http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socket的引入 ...
- 套接字编程相关函数(2:TCP套接字编程相关函数)
本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...
- Day9 基于TCP的套接字和基于UDP的套接字
服务端: ss=socket() #创建服务器套接字 ss.bind() #把地址绑定到套接字 ss.listen() #监听套接字, inf_loop: #服务器无限循环 cs=ss.accept( ...
- python套接字编程基础
python套接字编程 目录 socket是什么 套接字的工作流程 基于tcp的套接字 基于udp的套接字 socket是什么 客户端/服务器架构(C/S架构) 服务端:提供服务的一端 客户端:请求服 ...
- python之udp协议的套接字
udp是无链接的,先启动哪一端都不会报错 udp服务端 1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 ...
- Python Web学习笔记之socket套接字
套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了建立通信通道,网络通信 ...
- day29 python 套接字socket TCP udp 形式发送信息的区别
我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在 ...
随机推荐
- (原)关于使用imagemagick将gif叠加到图片或者画布上的方法,以及疑难杂症
今天因为项目过程中,有一个小需求,需要将一个指定的gif按照指定大小,叠加到画布的指定位置上,本来对于熟悉这块的人,简直就是小菜一碟哈,但本人因为对imagemagick的不熟悉,导致在这个需求上摸索 ...
- linux那些事儿
Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上的各种应用程序.我们常说的linux实际是GNU/Linux,GNU是一个自由的操作系统.绝大多数基于Linux内核的操作 ...
- cube-slide组件的应用
<template> <div> <cube-slide :data="items"/> </div> </template& ...
- springboot自定义类@Resource注入为null的问题
最近用spring boot ,在controller外面即自定义的类里报错 java.lang.NullPointerException debug了下发现@Resource注入为null 查了不少 ...
- 利用docker搭建RTMP直播流服务器实现直播
一.rtmp服务器搭建 环境: centos 7.* 1.先安装docker(省略) 2.下载docker容器 docker pull alfg/nginx-rtmp 3.运行容器(记得打开防火墙端口 ...
- Windows版的OpenJDK下载(Red Hat 提供)
OpenJDK 在linux下安装很简单(yum安装),但是OpenJDK的官网没有为我们提供Windows版的安装软件.庆幸的是,Red Hat(红帽)为我们提供了windows版的安装软件. 下载 ...
- InvokeMember 使用(转http://blog.csdn.net/gooer/article/details/2927113)
函数原型: public object InvokeMember(string, BindingFlags, Binder, object, object[]); ...
- chrome表单自动填充如何取消
autocomplete="new-password"
- [Docker] - 安装 SQL Server 2019,使用 SSMS 进行登录
镜像仓库 https://hub.docker.com/_/microsoft-mssql-server 拉取镜像并进行安装(以 SQL Server 2019 CTP 3.2 为例) docker ...
- Lock Free (无锁并发)
CAS( compare and swap) 原子操作,保证了如果需要更新的地址没有被其他进程(线程)改动过,那么它可以安全的写入.而这也是我们对于某个数据或者数据结构加锁要保护的内容,保证读写的一致 ...