ss-套接字监控工具
2024-09-02 05:39:29
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
最新文章
- 从零开始编写自己的C#框架(12)——T4模板在逻辑层中的应用(一)(附源码)
- SQLServer 列出每个表的列和属性
- MySQL 命令行工具之 mysqldump 深入研究
- quick cocos2dx lua 内存释放
- C++ dll调用
- Django项目中model增加了新字段怎样更新?
- ie6下兼容问题
- ORACLE数据库DBMS_JOB的创建与使用
- cordova /phonegap 自定义插件
- WampServer安装图解教程
- c++ union学习
- (六)Hibernate 映射类型
- [D3] 4. d3.max
- nginx 配置正向 HTTP 代理服务器[转]
- android脚步---自动完成文本框
- 微信小程序中的微信支付js代码和流程详解
- 【ASP.NET Core分布式项目实战】(一)IdentityServer4登录中心、oauth密码模式identity server4实现
- MongoDB 常用语句
- Sprite(雪碧图)的应用
- Objective-C RunTime 学习笔记 之 AutoReleasPool
热门文章
- DataTable 数字排序问题
- c# – Asp.Net Core MVC中Request.IsAjaxRequest()在哪里?
- HashMap、HashTable与ConcurrentHashMap的区别
- base64与图片输出屏幕
- 23 SVN---版本控制系统
- 【Python爬虫案例学习】python爬取淘宝里的手机报价并以价格排序
- 第一个python小脚本
- redis源码分析(一)-sds实现
- Oracle--(Hierarchical Queries)层级查询(用于部门层级等)
- 部署.Net Core APi+Vue 到 linux centos 服务器(一)