(转)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具有强大的功能,所以它的选项也很多,其中大部分选项 ...
随机推荐
- quartz 使用配置文件配置线程数
quartz默认的线程数是10个,如果我们要修改这个线程数需要做一个配置文件,在配置文件内修改线程. 一共需要2个操作: 1.找到quartz的XML配置文件,设置加载配置文件(配置文件存放在weba ...
- Ubuntu的Unable to locate package无法更新源问题解决方案
https://blog.csdn.net/long19910605/article/details/47017889/ 问题: 更新源时提示不能联网(does the network require ...
- Windows下查看进程状态/信息
任务管理器 tasklist pslist(https://docs.microsoft.com/en-us/sysinternals/downloads/pslist) Process Explor ...
- 2018数学建模国赛总结(A题/编程选手视角)
2018数学建模已经告一段落了,先说说基本情况吧,我们队伍专业分别为:金融(A),会计(B),计算机(我),配置还算可以,他们俩会数据分析软件也会写论文,我可以写代码,画图.他们俩打过美赛(M奖),我 ...
- 初学python-字符串中引号的使用、input简介、强制类型转换、加减乘除简写、条件判断
一.字符串中单引号和双引号的使用: 1.字符串以英文单引号' '引用.eg:'Hello World' 2.若字符串中含有单引号,则以英文双引号" "引用.eg:"I'm ...
- Python3异常处理
一. 简介 在编程过程中为了增加友好性,在程序出现Bug时一般不会直接将错误信息展示给用户,而是提供一个友好的输出提示. 二. 使用 1. 异常基础 常用结构: try: pass except Ex ...
- SDUT OJ 数据结构实验之二叉树五:层序遍历
数据结构实验之二叉树五:层序遍历 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...
- 导出table为Excel
1.HTML <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...
- 怎样关闭adobe reader的自动更新
https://jingyan.baidu.com/article/1612d5004390ebe20f1eee50.html
- 深入解析Close()和Dispose()的区别
很多人都认为Close()方法内部会调用Dispose()方法,所以并没有本质的区别!实际上这个看法不是很准确,对有 些类来说,的确Close()和Dispose()没有本质区别,但是对有些类来说并非 ...