每天一个linux命令(44)--ss命令
ss 是 socket statistics 的缩写。顾名思义,ss 命令可以用来获取socket 统计信息,它可以显示和netstat 类似的内容。但 ss 的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是 cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用 netstat 等于浪费生命,而用 ss才是 节省时间。
天下武功唯快不破。ss快的秘诀在于,他利用了TCP协议栈中 tcp_diag. tcp_diag 是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有 tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat 要快。)
1.命令格式:
ss [参数]
ss [参数] [过滤]
2.命令功能:
ss(socket statistics 缩写),该命令可以用来获取 socket 的统计信息,此命令输出的结果类似于 netstat 输出的内容,但它能显示更多更详细的 TCP 连接状态的信息,且比 netstat 更快速高效。它使用了 TCP 协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss 命令快捷高效。在没有 tcp_diag,ss 也可以正常运行。
3.命令参数:
-n --numeric不解析服务名称
-r --resolve 解析主机名
-l --listening 显示监听状态的套接字(sockets)
-a --all显示所有套接字
-o --options 显示计时器信息
-e --extended 显示详细的套接字(socket)的内存使用情况
-p --processed 显示使用套接字的进程
-i --info 显示 tcp 内部信息
-s --summary 显示套接字(socket)使用概况
-4 --IPv4 仅显示 IPv4的套接字
-6
-0(零) --packet 显示 PACKET 套接字
-t --tcp 仅显示 TCP 套接字
-u --udp 仅显示 UDP套接字
-d --dccp 仅显示 DCCP 套接字
-w --raw 仅显示 RAW 套接字
-x --Unix 仅显示 Unix 套接字
-f --family=FAMILY 显示 FAMILY 类型的套接字,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 套接字信息转储到文件
-F --filter=FILE 从文件中都去过滤信息
FLITER := [ state TCP-STATE ] [ EXPRESSION ]
4使用实例:
实例1:显示TCP连接
命令:ss -t -a
实例2:显示 sockets 摘要
命令: ss -s
列出当前的established、 closed、 orphaned and waiting TCP sockets
实例3:
ss -l
实例4:查看进程使用的socket
命令:
ss -pl
实例5:找出打开套接字/端口应用程序
命令:
ss -lp | grep 3306
实例6:显示所有UDP sockets
命令:
ss -u -a
实例7:显示所有状态为 established 的 SMTP 连接
命令:
ss -o state established `( dport =: smtp or sport = : smtp )`
实例8:显示所有状态为 Established 的 HTTP 连接
命令:
ss -o state established `(dport = :http or sport = :http)`
实例9:列举出处于 FIN-WAIT-1 状态的源端口为 80 或者 443, 目标网络为 192.168.1 /24 的所有 tcp 套接字
命令:
ss -o state fin-wait-1 `( sport = :http or sport = :https)` dst 192.168.1/24
实例10:用TCP 状态过滤 sockets:
命令:
ss -4 state FILTER-NAME-HERE
ss -6 state FILTER-NAME-HERE
FILTER-NAME-HERE 可以代表以下任何一个
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all 所有以上状态
connected 除了listen and closed 的所有状态
synchronized 所有已连接的状态除了 syn-sent
bucket 显示状态为 maintained as minisockets, 如 time-wait 和 syn-recv.
big 和bucket 相反
实例11:匹配远程地址和端口号
命令:
ss dst ADDERSS_PATTERN
ss dst 192.168.1.1
ss dst 192.168.1.1:8080
实例12:匹配本地地址和端口号
命令:
ss src ADDRESS_PATTERN
ss src 192.168.1.1
ss src 192.168.1.1:80
实例13:将本地或者远程端口和一个数比较
命令:
ss dport OP PORT 远程端口和一个数比较; destination port
ss sport OP PORT 本地端口和一个数比较; source port
OP--OPTION:
<= or le, >= or ge, == or eq,
!= or ne < or gt > or lt
实例14: ss 和 netstat 效率对比
命令:
time netstat -at
time ss
用 time 命令分别获取通过netstat 和 ss 命令获取程序占用资源所使用的时间。在服务器连接数比较多的时候,netstat 的效率完全没法和 ss 比。
每天一个linux命令(44)--ss命令的更多相关文章
- Linux系统使用ss命令查看端口状态
Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 3.ss的使用 3.1 ...
- linux常用命令:ss 命令
ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信 ...
- 网络模型、IP命令、SS命令介绍
1. 分层对应关系 OSI七层模型和TCP/IP五层模型都属于TCP/IP协议栈,而TCP/IP协议栈只有两种传输层协议:TCP.UDP,所以对于Telnet.FTP这些协议,建议称之为承载在TCP之 ...
- Linux命令:ss命令
ss功能:用来显示套接字信息的,类似于netstat,可以显示更多的信息,用于替代netstat. ss常用选项 ss -t:tcp协议的连接 -u:udp协议的链接 -w:裸套接字相关 -x:uni ...
- netstat 命令 与 ss 命令
http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html http://www.ttlsa.com/linux-command/ss-r ...
- Linux命令学习(22):ss命令
版权声明 更新:2017-05-20 博主:LuckyAlan 联系:liuwenvip163@163.com 声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的ss命令 ...
- SS命令和Netstat命令比较
在早期运维工作中,查看服务器连接数一般都会用netstat命令.其实,有一个命令比netstat更高效,那就是ss(Socket Statistics)命令!ss命令可以用来获取socket统计信息, ...
- [转]Linux下网络常用命令和工具
转自:http://int32bit.me/2016/05/04/Linux%E5%B8%B8%E7%94%A8%E7%BD%91%E7%BB%9C%E5%B7%A5%E5%85%B7%E6%80%B ...
- Docker 容器中无ss命令解决方法
在早期运维工作中,查看服务器连接数一般都会用netstat命令.其实,有一个命令比netstat更高效,那就是ss(Socket Statistics)命令!ss命令可以用来获取socket统计信息, ...
随机推荐
- Linux_System2
1.从服务器下载http*.tar.gz源码包,安装到/usr/local/apache目录下,要求安装时指定能够动态加载模块,能够支持地址回写功能,能够使用ssl加密功能../configure — ...
- MVC 与 MVVM
MVC View直接访问Model,View包含Model信息,包括业务逻辑. MVC模型里Model不变,Model不依赖于View,但是 View依赖于Model.因为View实现了一些业务逻辑, ...
- 2.3. 实体(Core Data 应用程序实践指南)
Entity 实体,就像是数据表的映射类.用实体就可以创建托管对象了. 实体需要做的就是设置实体名称.实体属性及属性数据类型. 还可以根据实体配置NSManagedObject的子类(可选),创建子类 ...
- 后台邮箱配置SMTP函数,如何把发件人设置为自定义昵称
默认的php的mail函数,太坑爹! 用PHPCMS配置好SMTP后,虽然能发送邮件. 但是收件人一项,显示的是邮箱地址@前面的内容. 今天研究了一下午,终于在一个论坛里找到了答案. 原来PHPCMS ...
- jQuery事件绑定、解绑、命名空间
jQuery事件绑定.解绑.命名空间 <%@ page language="java" import="java.util.*" pageEncoding ...
- Winform ListView的用法
清除数据: lvOrder.Items.Clear(); 赋值数据: if (lvList.Count != 0) { foreach (var item in lvList) { string[] ...
- 关于Coursera上的斯坦福机器学习课程的编程作业提交问题
学习Coursera上的斯坦福机器学习课程的时候,需要向其服务器提交编程作业,我遇到如下问题: 'Submission failed: unexpected error: urlread: Peer ...
- [html]关于html标签的一些总结
以下内容纯属个人对项目细节的总结,因为只是为了自己回顾方便,所以比较杂乱. 1.img 如果不指定img的高度和宽度,则img显示的是原图片的大小:如果只指定了高度和宽度中的一者,则为指定的一者等比例 ...
- WinForm 控件(下)
10.PictureBox 外观,Image可以选择图片路径行为,SizeMode可以设置图片大小布局方式 11.Imagelist--图片集 imageList1.Images[n]; 12.not ...
- oracle decode函数的用法
含义解释: decode(字段,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 用法如下:IF 字段=值1 返回 返回值1ELSIF 字段=值2 返回 返回值2 ......ELSIF ...