http://blog.lifeibo.com/?p=244

在实际工作中,熟练使用工具,可以为我们提高不少效率。今天我们简单了解下ss工具的使用。ss即socket state,也就是说,是可以查看系统中socket的状态的。我们可以用netstat,但为什么还要用ss这个工具呢,当然ss也是有好处的。当我们打开的socket数量很多时,netstat就会变得慢了。

我们先来看看ss的使用格式:

  1. $ ss [ OPTIONS ] [ STATE-FILTER ] [ ADDRESS-FILTER ]
$ ss [ OPTIONS ] [ STATE-FILTER ] [ ADDRESS-FILTER ]

options我从man手册里摘了过来:

-h – show help page
-? – the same, of course
-v, -V – print version of ss and exit
-s – print summary statistics. This option does not parse socket lists obtaining summary from various sources. It is useful when amount of sockets is so huge that parsing /proc/net/tcp is painful.
-D FILE – do not display anything, just dump raw information about TCP sockets to FILE after applying filters. If FILE is – stdout is used.
-F FILE – read continuation of filter from FILE. Each line of FILE is interpreted like single command line option. If FILE is – stdin is used.
-r – try to resolve numeric address/ports
-n – do not try to resolve ports
-o – show some optional information, f.e. TCP timers
-i – show some infomration specific to TCP (RTO, congestion window, slow start threshould etc.)
-e – show even more optional information
-m – show extended information on memory used by the socket. It is available only with tcp_diag enabled.
-p – show list of processes owning the socket
-f FAMILY – default address family used for parsing addresses. Also this option limits listing to sockets supporting given address family. Currently the following families are supported: unix, inet, inet6, link, netlink.
-4 – alias for -f inet
-6 – alias for -f inet6
-0 – alias for -f link
-A LIST-OF-TABLES – list of socket tables to dump, separated by commas. The following identifiers are understood: all, inet, tcp, udp, raw, unix, packet, netlink, unix_dgram, unix_stream, packet_raw, packet_dgram.
-x – alias for -A unix
-t – alias for -A tcp
-u – alias for -A udp
-w – alias for -A raw
-a – show sockets of all the states. By default sockets in states LISTEN, TIME-WAIT, SYN_RECV and CLOSE are skipped.
-l – show only sockets in state LISTEN

ss的强大之处,大于可以设定过滤条件,我们可以根据socket的状态来进行过滤,也可通过端口与ip地址进行过滤。也就是我们在命令格式里面看到的STATE-FILTER与ADDRESS-FILTER。

首先看看STATE-FILTER,STATE-FILTER可用的过滤条件有:
1. 所有的TCP状态,包含:established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listen and closing.
2. all,包含所有的状态。
3. connected,除了listen与closed的所有其它状态。
4. synchronized,除了syn-sent的所有connected的状态。
5. bucket
6. big
使用时,如:

  1. $ ss state connected
$ ss state connected

再看看ADDRESS-FILTER,ADDRESS-FILTER用于过滤端口与地址。而且可以进行表达式组合。可用的子表达式有:
1. dst ADDRESS_PATTERN
2. src ADDRESS_PATTERN
3. dport RELOP PORT
4. sport RELOP PORT
5. autobound
其中ADDRESS_PATTERN为ip地址与端口匹配,ip:port,可以用*代替。RELOP为<= >=或==。
如:

  1. $ ss dst 192.168.0.1:80
  2. $ ss dport == 80
$ ss dst 192.168.0.1:80
$ ss dport == 80

多个子表达式之间可以组合,当然跟tcpdump一样,可以用or and not来组合。但括号要用转义符号表示。
如:

  1. $ ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 193.233.7/24
$ ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 193.233.7/24

看看几个例子:
查看系统总体信息:

  1. $ ss -s
  2. Total: 85 (kernel 108)
  3. TCP:   15 (estab 4, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 12
  4. Transport Total     IP        IPv6
  5. *     108       -         -
  6. RAW   0         0         0
  7. UDP   10        7         3
  8. TCP   15        12        3
  9. INET      25        19        6
  10. FRAG      0         0         0
$ ss -s
Total: 85 (kernel 108)
TCP:   15 (estab 4, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 12
Transport Total     IP        IPv6
*     108       -         -
RAW   0         0         0
UDP   10        7         3
TCP   15        12        3
INET      25        19        6
FRAG      0         0         0

想看当前机器的8088端口被谁占用了:

view plain copy to clipboard print ?
  1. $ ss -lp src :8088
  2. Recv-Q Send-Q                                                       Local Address:P
  3. 0      0                                                                        *:8ers:(("nginx",2942,5),("nginx",2943,5))
$ ss -lp src :8088
Recv-Q Send-Q                                                       Local Address:P
0      0                                                                        *:8ers:(("nginx",2942,5),("nginx",2943,5))

我们可以看到,是一个叫nginx的进程,进程id是2942。
当然,用lsof工具也可以看到,还会更简单呢。lsof -i :80

好吧,就先简单介绍到这了。

linux下ss工具简介相关推荐

  1. linux卸载htop,linux下 htop 工具简介

    今天我们介绍一下 htop 工具的使用,这是个很实用的工具,可以查看系统进程.cpu占用率,内存使用等情况. 对于我们运维人员来说使用它可以快速定位是哪一个进程造成了系统堵塞:哪些进程长期霸占了CPU ...

  2. Linux 下使用 Sar 简介

    Linux 下使用 Sar 简介 提交 我的留言 加载中 已留言 介绍 Sar 最早是实现在 Salaris Unix 系统里,后来移植到了大部分其他的 Unix 系统(如AIX,HP-UX等).Li ...

  3. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  4. linux下多进程编程简介

    两年前的文章,拿过来充充门面. ------------------------ linux下多进程编程简介 ( 作者:mikespook | 发布日期:2002-12-8 | 浏览次数:272 ) ...

  5. 实验 Linux下C工具应用

    实验报告 实 验(一) 题     目 Linux下C工具应用 专       业 计算机科学与技术 计算机科学与技术学院 目  录 第1章 实验基本信息... - 4 - 1.1 实验目的... - ...

  6. 万得终端 linux安装,Linux下常用工具

    Linux下常用工具: yuv rgba playerubuntu 18.04 wps1 2sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb sudo ...

  7. 模仿实现Linux下readelf工具部分功能

    模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...

  8. Linux下抓图工具shutter

    Linux下抓图工具shutter 转载于:https://www.cnblogs.com/zhangze/archive/2013/06/07/3123558.html

  9. 利用Linux下DDOS工具tfn2k进行DDOS攻击试验

    "Tribe Flood Network 2000 (TFN2K)是一款分布式拒绝服务(DDOS)的攻击工具.TFN2K是由德国著名黑客Mixter编写的同类攻击工具TFN的后续版本.本文将 ...

最新文章

  1. 身份证号码对应地区-官方措辞:行政区划代码
  2. 交叉线和直通线各自用于什么场合?为什么?_都是软电线,BVR与RV有什么不一样?...
  3. 局域网共享文件夹设置
  4. 【杂谈】如何让2020年秋招CV项目能力更加硬核,可深入学习有三秋季划4大领域32个方向
  5. go gin提交form表单请求
  6. 动态控制SAP C4C UI元素的显示和隐藏
  7. java初学者面试_Java面试的前50个问题,面向初学者和经验丰富的程序员
  8. [css] sass是怎么定义变量的?
  9. OPTEE之安全存储详解
  10. YOLO-Fastest算法!准确率接近YOLOv3,速度快上45%
  11. es 中关于 term,match, text, keyword
  12. LeetCode(136)——只出现一次的数字(JavaScript)
  13. ubuntu上安装CLucene
  14. vue的视图化创建项目_vuecli 创建项目的方法,以及图像化操作【23】
  15. 学计算机编程应该先学什么,如何自学计算机编程,学编程应该先学什么
  16. 16.第二十二章.信息安全管理
  17. carry函数在C语言中用法,常考词的语法与用法:careless, carry, case
  18. linux强制连接蓝牙键盘,Thinkpad 蓝牙键盘 Fn 键处于锁定状态的解决方法
  19. 每天一个设计模式——写在前面
  20. 计算机的来源知识,计算机的由来计算机从诞生到现在才不过50多年的时间,可是发展却很快,已先后经历了四代,可以说是人丁兴旺。世界上第一台电子计算机1946年诞生于美国,名为埃尼阿克(ENIAC)...

热门文章

  1. Android studio音乐播放器
  2. 学习java需要的软件
  3. pytorch repeat 使用详解
  4. 【分享程序员的生活】在国企里面当程序猿是一种怎样的体验!!??
  5. iOS12.4越狱了!只要这几步就能越狱,方法教程
  6. 【MindSpore】 No module named apos;mindspore.dataset.transformsapos;
  7. 线性代数笔记3.3向量组的秩
  8. requireJS常用用法
  9. 信息收集之zoomeye
  10. vue的scoped 样式隔离,样式穿透,及细节