ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:

  • 所有的TCP sockets

  • 所有的UDP sockets

  • 所有ssh/ftp/ttp/https持久连接

  • 所有连接到Xserver的本地进程

  • 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤

  • 所有的state FIN-WAIT-1 tcpsocket连接以及更多

很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.

展示他之前来做个对比,统计服务器并发连接数

netstat
# time netstat -ant | grep EST | wc -l
3100real 0m12.960s
user 0m0.334s
sys 0m12.561s
# time ss -o state established | wc -l
3204real 0m0.030s
user 0m0.005s
sys 0m0.026s

结果很明显ss统计并发连接数效率完胜netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.

常用ss命令:

  • ss -l 显示本地打开的所有端口

  • ss -pl 显示每个进程具体打开的socket

  • ss -t -a 显示所有tcp socket

  • ss -u -a 显示所有的UDP Socekt

  • ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接

  • ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接

  • ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程

  • ss -s 列出当前socket详细信息:

显示sockets简要信息,列出当前已经连接,关闭,等待的tcp连接

# ss -s
Total: 3519 (kernel 3691)
TCP: 26557 (estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452Transport Total IP IPv6
* 3691 - -
RAW 2 2 0
UDP 10 7 3
TCP 3375 3368 7
INET 3387 3377 10
FRAG 0 0 0

列出当前监听端口

# ss -lRecv-Q Send-Q Local Address:Port Peer Address:Port
0 10 :::5989 :::*
0 5 *:rsync *:*
0 128 :::sunrpc :::*
0 128 *:sunrpc *:*
0 511 *:http *:*
0 128 :::ssh :::*
0 128 *:ssh *:*
0 128 :::35766 :::*
0 128 127.0.0.1:ipp *:*
0 128 ::1:ipp :::*
0 100 ::1:smtp :::*
0 100 127.0.0.1:smtp *:*
0 511 *:https *:*
0 100 :::1311 :::*
0 5 *:5666 *:*
0 128 *:3044 *:*

ss列出每个进程名及其监听的端口

# ss -pl

ss列所有的tcp sockets

# ss -t -a

ss列出所有udp sockets

# ss -u -a

ss列出所有http连接中的连接

# ss -o state established '( dport = :http or sport = :http )'

以上包含对外提供的80,以及访问外部的80.用以上命令完美的替代netstat获取http并发连接数,监控中常用到

ss列出本地哪个进程连接到x server

# ss -x src /tmp/.X11-unix/*

ss列出处在FIN-WAIT-1状态的http、https连接

# ss -o state fin-wait-1 '( sport = :http or sport = :https )'

ss常用的state状态:

  • established

  • syn-sent

  • syn-recv

  • fin-wait-1

  • fin-wait-2

  • time-wait

  • closed

  • close-wait

  • last-ack

  • listen

  • closing

  • all : All of the above states

  • connected : All the states except for listen and closed

  • synchronized : All the connected states except for syn-sent

  • bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.

  • big : Opposite to bucket state.

ss使用IP地址筛选

  • ss src ADDRESS_PATTERN

  • src:表示来源

  • ADDRESS_PATTERN:表示地址规则

如下:

ss src 120.33.31.1
# 列出来之20.33.31.1的连接
# 列出来至120.33.31.1,80端口的连接
ss src 120.33.31.1:http
ss src 120.33.31.1:8

ss使用端口筛选

  • ss dport OP PORT

  • OP:是运算符

  • PORT:表示端口

  • dport:表示过滤目标端口、相反的有sport

OP运算符如下:

<= or le : 小于等于 >= or ge : 大于等于
== or eq : 等于
!= or ne : 不等于端口
< or lt : 小于这个端口 > or gt : 大于端口

OP实例

ss sport = :http 也可以是 ss sport = :80
ss dport = :http
ss dport \> :1024
ss sport \> :1024
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport = :http or sport = :https \)
ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

为什么ss比netstat快:

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

ss命令帮助

# ss -h
Usage: ss [ OPTIONS ]ss [ OPTIONS ] [ FILTER ]-h, --help           this message-V, --version        output version information-n, --numeric        don't resolve service names-r, --resolve       resolve host names-a, --all            display all sockets-l, --listening      display listening sockets-o, --options       show timer information-e, --extended      show detailed socket information-m, --memory        show socket memory usage-p, --processes      show process using socket-i, --info           show internal TCP information-s, --summary        show socket usage summary-4, --ipv4          display only IP version 4 sockets-6, --ipv6          display only IP version 6 sockets-0, --packet display PACKET sockets-t, --tcp            display only TCP sockets-u, --udp            display only UDP sockets-d, --dccp           display only DCCP sockets-w, --raw            display only RAW sockets-x, --unix           display only Unix domain sockets-f, --family=FAMILY display sockets of type FAMILY-A, --query=QUERY, --socket=QUERYQUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D, --diag=FILE      Dump raw information about TCP sockets to FILE-F, --filter=FILE   read filter information from FILEFILTER := [ state TCP-STATE ] [ EXPRESSION ]

Linux网络状态工具ss命令操作详解相关推荐

  1. LINUX网络状态工具SS命令使用详解

    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...

  2. Linux 网络状态工具 ss 详解,比netstat更强大

    1.展示他之前来做个对比,统计服务器并发连接数 netstat # time netstat -ant | grep EST | wc -l 3100real 0m12.960s user 0m0.3 ...

  3. 【Linux】Linux中rz和sz命令用法详解

    [Linux]Linux中rz和sz命令用法详解 1. 简单介绍 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具.优点就是不用再开一个sftp工具登录上去上传下载 ...

  4. 玩转Linux之dd命令操作详解

    一.dd命令介绍     dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 使用权限: 所有使用者dd 这个指令在 manual ...

  5. java linux tracert_Linux系统中tracert命令使用详解

    Linux系统中Tracert命令用来显示数据包到达目标主机是所经过的路径.下面由学习啦小编为大家整理了linux系统中tracert命令使用详解,希望对大家有帮助! Linux系统中tracert命 ...

  6. linux打补丁要选择目录,Linux下patch打补丁命令实例详解

    linux下patch命令使用详解---linux打补丁命令 功能说明: 修补文件. 语 法: patch [-bceEflnNRstTuvZ][-B ][-d ][-D ][-F ][-g ][-i ...

  7. ss命令Linux网络状态工具

    ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信 ...

  8. Linux常用命令操作详解

    https://mp.weixin.qq.com/s/IR4yy7Q0mOA_XV16R21CdQ 一:Linux下tomcat服务的启动.关闭与错误跟踪 使用PuTTy远程连接到服务器以后,通常通过 ...

  9. netstat的替代者-ss命令实例详解

    来源:公众号[编程珠玑] 作者:守望先生 原文地址:https://www.yanbinghu.com/2019/06/30/19183.html 前言 之前在介绍netstat的时候说过,netst ...

最新文章

  1. 那些参加过创业赛事活动的创业者后来怎么样了?
  2. 您是否应该始终偏爱xrange()而不是range()?
  3. Java黑皮书课后题第4章:*4.3(几何:估算面积)应用4.1节图中以下地点的GPS位置:Georgia州的Atlanta……计算被这四个城市所围起来的区域面积
  4. java为什么被开发者_为什么开发者对Java 9如此的兴奋
  5. JAVA实现可设置背景的MDI窗口
  6. [架构] 分布式和集群的区别
  7. linux搭建web服务器原理,【LINUX】linux搭建web服务器
  8. java图的建立field_《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的...
  9. 微信、企业微信和支付窗 SDK 三合一,JeeWx-api 1.2.0 版本发布
  10. 力扣-88 合并两个有序数组
  11. 如何在 Mac 上设置和使用快捷方式?
  12. 「NetSpeedMonitor」Windows10状态栏显示网络速度
  13. Chrome调试器中的“警告:显示了临时标题”
  14. python3安装失败_python3安装失败如何处理
  15. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)
  16. VBoxManage 命令详解 (有用)
  17. java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...
  18. spotify歌曲下载_k表示使用Spotify歌曲功能进行聚类
  19. 水浒108条好汉排名及派系全解析
  20. C# dll ushort*的处理方法

热门文章

  1. 使用ONVIF协议控制海康威视球机
  2. php中求数据库两个数的和,php – Doctrine2和Zend框架中的多个数据库连接
  3. Oracle导入报错:ORA-01653表 无法通过 128 (在表空间 MY_BASE_DATA 中) 扩展
  4. EasyExcle使用小结
  5. python报错_python 常见报错
  6. c++ 调用cmd命令行函数 可隐藏黑框 四种方法总结
  7. linux链路状态,网卡一配地址,链路状态就down了,求解决方法!
  8. ue linux转dos格式,uestudio中如何把dos格式转为unix
  9. 文件共享服务器连接数问题,共享服务器上连接数量的设置
  10. facebook对话链接_并非里程碑! Facebook的100种语言互译模型夸大宣传遭质疑