(转)Linux网络状态工具ss命令使用详解
Linux网络状态工具ss命令使用详解
原文:http://www.landui.com/help/show-5991.html
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网络状态工具ss命令使用详解的更多相关文章
- Linux网络状态工具ss命令使用详解【转】
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- Linux网络状态工具ss命令使用详解
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- linux 网络状态工具ss命令
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- Linux 网络流量实时监控工具之ntopng详解
大纲一.前言二.ntopng 简介三.ntopng 功能说明 四.ntopng 安装详解五.ntopng 配置详解 六.ntopng 使用详解注,操作系统 CentOS 5.5 X86_64,软件版本 ...
- linux ss命令使用详解
ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信 ...
- Linux中rz和sz命令用法详解
http://www.111cn.net/sys/linux/67810.htm 在linux中rz 和 sz 命令允许开发板与主机通过串口进行传递文件了,下面我们就来简单的介绍一下rz 和 sz 命 ...
- Linux 网络编程三(socket代码详解)
//网络编程客户端 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...
- Linux下同步工具inotify+rsync使用详解
1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这 ...
- Linux下的搜索查找命令的详解(find)
4.find Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项 ...
随机推荐
- vmware10安装Arch
必须保证机器能够上网! 1.vmware10中创建虚拟机(跟虚拟机中安装其他系统同样的操作). 2.开启上一步中创建的虚拟机. 3选择第一项进入 4自动进入root命令行 5进入 /dev (进行分区 ...
- 转Delphi中XLSReadWrite控件的使用(1)---简介
XLSReadWrite控件简介: 一个你需要的,能在Delphi和.NET下访问Excel文件的完美解决方案. 一个经典的读写Excel的控件,对于使用Excel 开发很有帮助 官方网站: http ...
- web.xml配置及详解
1.web.xml 是网络程序中的一个很重要的配置文件. 2.XML基础标准是为XML的进一步实用化制定的标准,它规定了采用XML制定标准时的一些公用特征.方法或规则.XML Schema描述了更加严 ...
- wcf文件上传时碰到的配置问题
1.远程服务器返回了意外相应:(413) Request Entity Too Large 修改客户端配置maxReceivedMessageSize="2147483647" & ...
- 最小生成树(kruscal算法)
其实kruscal算法很简单,把边从小到大排一遍,如果加入此边形成环,就不加,知道这棵树有n-1条边. 代码如下(一定要理解): #include<iostream> #include&l ...
- MarkdownPad基于语法示例
博客园 [有道] (https://www.zybuluo.com/mdeditor#) [Markdown语法教学链接] (https://www.cnblogs.com/chimoxuanzhi/ ...
- postgresql删除活动链接的数据库
当我们在使用drop database testdb命令删除数据库时,会提示该数据库正在被使用,这样我们就无法删除,此时我们可以通过如下语句断开该数据库的所有链接: SELECT pg_termina ...
- php代码审计6审计xss漏洞
跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的html代码,从而盗取用户资料,利用用户身份进行某种动作或者对 ...
- 【java】AtomicReference介绍
本文转载自:http://www.cnblogs.com/skywang12345/p/3514623.html 概要 本章对AtomicReference引用类型的原子类进行介绍.内容包括: Ato ...
- SHELL编程之case与函数
一.case语句概述 使用case语句改写if多分支可以使脚本结构更加清晰.层次分明 针对变量不同取值,执行不同的命令序列 case语句结构如下: case 变量值 in 模式1) 命令序列1 ;; ...