Linux Command ss

tags: 网络, 分析

文章目录

  • Linux Command ss
    • 1. 简介
    • 2. 参数
    • 3.示例
      • 3.1 默认显示
      • 3.2 查看主机监听的端口
      • 3.3 通过 -r 选项解析 IP 和端口号
      • 3.4 使用 -p 选项查看监听端口的程序名称
      • 3.5 -a –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
      • 3.6 dst/src dport/sport 语法
      • 3.7 用TCP 状态过滤Sockets
      • 3.8 显示TCP连接
      • 3.9 显示 Sockets 摘要
      • 3.10 列出所有打开的网络连接端口
      • 3.11 查看进程使用的socket
      • 3.12 显示所有UDP Sockets
      • 3.13 所有端口为 22(ssh)的连接

1. 简介

ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多

2. 参数

常用选项

-h, –help 帮助-V, –version 显示版本号-t, –tcp 显示 TCP 协议的 sockets-u, –udp 显示 UDP 协议的 sockets-x, –unix 显示 unix domain sockets,与 -f 选项相同-n, –numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”-l, –listening 只显示处于监听状态的端口-p, –processes 显示监听端口的进程(Ubuntu 上需要 sudo)-a, –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接-r, –resolve 把 IP 解释为域名,把端口号解释为协议名称-o, –options 显示时间信息-m, –memory 显示 socket 使用的内存 -i, –info 显示更多 TCP 内部的信息-s 显示概要信息

3.示例

3.1 默认显示

如果不添加选项 ss 命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接:

[root@master ~]# ss | head -n 5
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port
u_str  ESTAB      0      0       * 49344                 * 49345
u_str  ESTAB      0      0       * 49311                 * 49312
u_str  ESTAB      0      0       * 49341                 * 49342
u_str  ESTAB      0      0       * 49312                 * 49311

3.2 查看主机监听的端口

# 显示端口的服务名
[root@master ~]# ss -tl
State      Recv-Q Send-Q                                                     Local Address:Port                                                                      Peer Address:Port
LISTEN     0      128                                                                    *:sunrpc                                                                               *:*
LISTEN     0      128                                                                    *:ssh                                                                                  *:*
LISTEN     0      100                                                            127.0.0.1:smtp                                                                                 *:*
LISTEN     0      128                                                                   :::sunrpc                                                                              :::*
LISTEN     0      128                                                                   :::ssh                                                                                 :::*
LISTEN     0      100                                                                  ::1:smtp                                                                                :::*
#显示端口号
[root@master ~]# ss -tnl
State      Recv-Q Send-Q                                                       Local Address:Port                                                                      Peer Address:Port
LISTEN     0      128                                                                      *:111                                                                                  *:*
LISTEN     0      128                                                                      *:22                                                                                   *:*
LISTEN     0      100                                                              127.0.0.1:25                                                                                   *:*
LISTEN     0      128                                                                     :::111                                                                                 :::*
LISTEN     0      128                                                                     :::22                                                                                  :::*
LISTEN     0      100                                                                    ::1:25                                                                                  :::*

3.3 通过 -r 选项解析 IP 和端口号

[root@master ~]# ss -tlr
State      Recv-Q Send-Q                                                     Local Address:Port                                                                      Peer Address:Port
LISTEN     0      128                                                                    *:rpc.portmapper                                                                       *:*
LISTEN     0      128                                                                    *:ssh                                                                                  *:*
LISTEN     0      100                                                            localhost:smtp                                                                                 *:*
LISTEN     0      128                                                                   :::rpc.portmapper                                                                      :::*
LISTEN     0      128                                                                   :::ssh                                                                                 :::*
LISTEN     0      100                                                            localhost:smtp                                                                                :::*

3.4 使用 -p 选项查看监听端口的程序名称

[root@master ~]# ss -tlp
State      Recv-Q Send-Q                                                                               Local Address:Port                                                                                                Peer Address:Port
LISTEN     0      128                                                                                              *:sunrpc                                                                                                         *:*                     users:(("rpcbind",pid=5502,fd=4),("systemd",pid=1,fd=44))
LISTEN     0      128                                                                                              *:ssh                                                                                                            *:*                     users:(("sshd",pid=6477,fd=3))
LISTEN     0      100                                                                                      127.0.0.1:smtp                                                                                                           *:*                     users:(("master",pid=6890,fd=13))
LISTEN     0      128                                                                                             :::sunrpc                                                                                                        :::*                     users:(("rpcbind",pid=5502,fd=6),("systemd",pid=1,fd=46))
LISTEN     0      128                                                                                             :::ssh                                                                                                           :::*                     users:(("sshd",pid=6477,fd=4))
LISTEN     0      100                                                                                            ::1:smtp                                                                                                          :::*                     users:(("master",pid=6890,fd=14))

3.5 -a –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接

[root@master ~]# ss -tna
State      Recv-Q Send-Q                                                                                 Local Address:Port                                                                                                Peer Address:Port
LISTEN     0      128                                                                                                *:111                                                                                                            *:*
LISTEN     0      128                                                                                                *:22                                                                                                             *:*
LISTEN     0      100                                                                                        127.0.0.1:25                                                                                                             *:*
ESTAB      0      52                                                                                    192.168.211.12:22                                                                                                 192.168.211.1:62054
LISTEN     0      128                                                                                               :::111                                                                                                           :::*
LISTEN     0      128                                                                                               :::22                                                                                                            :::*
LISTEN     0      100                                                                                              ::1:25                                                                                                            :::*

3.6 dst/src dport/sport 语法

可以通过 dst/src/dport/sprot 语法来过滤连接的来源和目标,来源端口和目标端口。

匹配远程地址和端口号

$ ss dst 192.168.1.5
$ ss dst 192.168.119.113:http
$ ss dst 192.168.119.113:443

匹配本地地址和端口号

$ ss src 192.168.119.103
$ ss src 192.168.119.103:http
$ ss src 192.168.119.103:80

将本地或者远程端口和一个数比较

可以使用下面的语法做端口号的过滤:

$ ss dport OP PORT
$ ss sport OP PORT

OP 可以代表以下任意一个:

# <= or le : 小于或等于端口号
# >= or ge : 大于或等于端口号
# == or eq : 等于端口号
# != or ne : 不等于端口号
# < or gt : 小于端口号
# > or lt : 大于端口号ss  sport = :http
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

3.7 用TCP 状态过滤Sockets

ss -4 state closing
# 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相反.

3.8 显示TCP连接

[root@localhost ~]# ss -t -a
State       Recv-Q Send-Q                            Local Address:Port                                Peer Address:Port
LISTEN      0      0                                             *:3306                                           *:*
LISTEN      0      0                                             *:http                                           *:*
LISTEN      0      0                                             *:ssh                                            *:*
LISTEN      0      0                                     127.0.0.1:smtp                                           *:*
ESTAB       0      0                                112.124.15.130:42071                              42.156.166.25:http
ESTAB       0      0                                112.124.15.130:ssh                              121.229.196.235:33398

查看TCP的连接状态

[root@localhost ~]# ss  -tan|awk 'NR>1{++S[$1]}END{for (a in S) print a,S[a]}'
LISTEN 7
ESTAB 31
TIME-WAIT 28

3.9 显示 Sockets 摘要

[root@localhost ~]# ss -s
Total: 172 (kernel 189)
TCP:   10 (estab 2, closed 4, orphaned 0, synrecv 0, timewait 0/0), ports 5Transport Total     ip        IPv6
*         189       -         -
RAW       0         0         0
UDP       5         5         0
TCP       6         6         0
INET      11        11        0
FRAG      0         0         0

列出当前的established, closed, orphaned and waiting TCP sockets

3.10 列出所有打开的网络连接端口

[root@localhost ~]# ss -l
Recv-Q Send-Q                                 Local Address:Port                                     Peer Address:Port
0      0                                                  *:3306                                                *:*
0      0                                                  *:http                                                *:*
0      0                                                  *:ssh                                                 *:*
0      0                                          127.0.0.1:smtp                                                *:*

3.11 查看进程使用的socket

[root@localhost ~]# ss -pl
Recv-Q Send-Q                                          Local Address:Port                                              Peer Address:Port
0      0                                                           *:3306                                                         *:*        users:(("mysqld",1718,10))
0      0                                                           *:http                                                         *:*        users:(("nginx",13312,5),("nginx",13333,5))
0      0                                                           *:ssh                                                          *:*        users:(("sshd",1379,3))
0      0                                                   127.0.0.1:smtp                                                         *:*        us

找出打开套接字/端口应用程序

[root@localhost ~]# ss -pl | grep 3306
0      0                            *:3306                          *:*        users:(("mysqld",1718,10))

3.12 显示所有UDP Sockets

[root@localhost ~]# ss -u -a
State       Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port
UNCONN      0      0                                                      *:syslog                                                  *:*
UNCONN      0      0                                         112.124.15.130:ntp                                                     *:*
UNCONN      0      0                                            10.160.7.81:ntp                                                     *:*
UNCONN      0      0                                              127.0.0.1:ntp                                                     *:*
UNCONN      0      0                                                      *:ntp                                                     *:*

3.13 所有端口为 22(ssh)的连接

[root@localhost ~]# ss state all sport = :ssh
Netid State      Recv-Q Send-Q     Local Address:Port                      Peer Address:Port
tcp   LISTEN     0      128                    *:ssh                                  *:*
tcp   ESTAB      0      0          192.168.0.136:ssh                      192.168.0.102:46540
tcp   LISTEN     0      128                   :::ssh                                 :::*

参考:

  • ss(8) — Linux manual page
  • An Introduction to the ss Command
  • How to Use the ss Command on Linux

Linux Command ss相关推荐

  1. Linux Command ps 性能分析

    Linux Command ps 性能分析 tags: 分析 文章目录 Linux Command ps 性能分析 1. 简介 2. 参数 3. 输出说明 4. 实例 4.1 ps 不带任何选项 4. ...

  2. Linux Command touch 创建文件

    Linux Command touch 创建文件 文章目录 Linux Command touch 创建文件 1. 简介 2. 格式 3. 参数 4. 举例 1. 简介 Linux中 touch 命令 ...

  3. Linux Command date 显示时间

    Linux Command date 显示时间 文章目录 Linux Command date 显示时间 1. 简介 2. 参数 3. 日期格式 4. 实例 1. 简介 命令功能:date 可以用来显 ...

  4. linux command find

    Linux command find [Purpose]        Learning linux command nmon   [Eevironment]        Ubuntu 16.04 ...

  5. 监听队列中linux方法ss -a,Linux命令:ss命令

    ss功能:用来显示套接字信息的,类似于netstat,可以显示更多的信息,用于替代netstat. ss常用选项 ss -t:tcp协议的连接 -u:udp协议的链接 -w:裸套接字相关 -x:uni ...

  6. linux 的ss命令,Linux中的ss命令的详细解释

    linxu下的ss其实Socket Statistics的缩写.下面由学习啦小编为大家整理了linux的ss命令的详细解释的相关知识,希望对大家有帮助! 一.Linux中的ssh命令的详细解释 1.命 ...

  7. Linux Command sar 网卡流量

    Linux Command sar 网卡流量 tags: 网络, 监控 文章目录 Linux Command sar 网卡流量 1. 简介 2. 查看内存各个指标的变化情况 1. 简介 如何实时查看网 ...

  8. Linux Command who、whois、whoami

    Linux Command who.whois.whoami tags: 用户管理 1. whois 显示指定用户信息 $ whois root #显示指定用户信息 $ whois ywnz.com ...

  9. Linux Command tc 模拟网络延迟和丢包

    Linux Command tc 模拟网络延迟和丢包 文章目录 Linux Command tc 模拟网络延迟和丢包 1. 介绍 2. 规则 2.1 流量控制方式 2.2 流量控制处理对象 3. 操作 ...

  10. Linux Command pushd

    Linux Command pushd 文章目录 Linux Command pushd 1. 简介 2. 格式 3. 参数 4. 实例 1. 简介 pushed命令用于将目录加入堆栈中,加入记录到目 ...

最新文章

  1. shell脚本的命令行传参
  2. python opencv imread()函数,关于:灰度图(二维数组图),彩色图(三维数组图)
  3. 中美领军全球AI竞赛,人工智能被高估了么?
  4. 两个input在一行让它们能对齐
  5. 浅谈Volatile与多线程
  6. ediplus 复制编辑一列_vi编辑器的使用详解
  7. [Spring5]IOC容器_Bean管理XML方式_外部属性文件
  8. HTML网页使用CDN的jquery.qrcode.min.js生成页面二维码(直接可以复制使用)
  9. 如何取得事件中鼠标坐标
  10. linux 定时任务 crontab
  11. iOS 数据库操作(使用FMDB)
  12. python二级考试报名2020浙江_关于2020年下半年高校计算机等级考试报名的通知
  13. 【ArcGIS|空间分析】数据采集处理(全国大学生GIS技能大赛试题)
  14. Infopath入门到精通系列-1 Infopath文件说明
  15. 石火电光追风逐日|前端优化之次时代图片压缩格式WebP的项目级躬身实践(Python3 PIL+Nginx)
  16. Wps ppt中无法打开超链接外部文件的解决办法。
  17. python处理word文档中的某页_Python快速设置Word文件中指定段落为目录标题
  18. 嵌入式开发——基于小熊派的智慧农业案例(一)
  19. 【独立站运营】什么是营销转化率?如何提升转化率?
  20. 关于Adobe2017-2022安装包在win11打开后没有安装按钮的解决方案,AE,PS,PR,DW,通用解决方法

热门文章

  1. 要求用户首先输入员工数量,然后输入相应员工信息,格式为: name,age,gender,salary,hiredate 例如: 张三,25,男,5000,2006-02-15 每一行为一个员
  2. windows10+Ubuntu双系统卸载旧Ubuntu并重装Ubuntu(绝对安全)
  3. Android多媒体功能开发(10)——使用MediaRecorder类录制音频
  4. [译] APT分析报告:07.拉撒路(Lazarus)使用的两款恶意软件分析
  5. iOS12正式版:支持Siri捷径
  6. elementui二维表动态渲染
  7. 淘宝优惠券商城赚钱是真的吗?购物最便宜的app
  8. 互联网架构师必备技能(使用markdown编写)
  9. 计算机语言学方面的期刊.,自然语言处理投稿哪些sci期刊
  10. ArcMap无法启动解决方法