一,ss所属的包:

[root@blog ~]# whereis ss
ss: /usr/sbin/ss /usr/share/man/man8/ss.8.gz [root@blog ~]# rpm -qf /usr/sbin/ss
iproute-4.18.0-15.el8.x86_64

通常默认已安装到系统,如果找不到ss命令时,可以用yum来安装

[root@blog ~]# yum install iproute

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看ss的版本和帮助:

1,查看版本

[root@centos8 liuhongdi]# ss --version
ss utility, iproute2-ss180813

2,查看帮助

[root@centos8 liuhongdi]# ss --help

三,ss的用途:

ss是Socket Statistics的缩写。

ss命令作用:可以用来获取socket统计信息,它可以显示和netstat类似的内容。

ss的优势:能够显示更多更详细的有关TCP和连接状态的信息,

而且比netstat更快速更高效

四,ss常用参数的含义:

# -l 表示只显示监听套接字

# -t 表示只显示 TCP 套接字

# -u display only UDP sockets,只显示udp套接字

# -n 表示显示数字地址和端口(而不是名字)

# -p 表示显示进程信息

# -s  summary,用来显示 Sockets 摘要

-o, --options : 指定过滤用的选项:通常是与网络计时器相关的信息:状态等

 

五,例子一:查看处于监听状态的端口

# -l 表示只显示监听套接字

# -t 表示只显示 TCP 套接字

# -n 表示显示数字地址和端口(而不是名字)

# -p 表示显示进程信息

[root@centos8 liuhongdi]# ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=1960,fd=13))
LISTEN 0 128 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=1003,fd=4),("systemd",pid=1,fd=39))
LISTEN 0 32 192.168.122.1:53 0.0.0.0:* users:(("dnsmasq",pid=2548,fd=6))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1241,fd=5))
LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=1253,fd=10))
LISTEN 0 128 [::]:5355 [::]:* users:(("systemd-resolve",pid=1960,fd=15))
LISTEN 0 128 [::]:111 [::]:* users:(("rpcbind",pid=1003,fd=6),("systemd",pid=1,fd=41))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1241,fd=7))
LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=1253,fd=9))

说明:

netstat 和 ss 的输出也是类似的,都展示了

输出字段的说明:

State:套接字的状态

Recv-Q:接收队列

Send-Q: 发送队列

Local Address:Port 本地地址/端口

Peer Address:Port:远端地址

进程 PID/进程名称

数据的说明:

1,接收队列(Recv-Q)和发送队列(Send-Q)通常应该是 0。

如果值不是 0 时,说明有网络包的堆积发生。

2, 在不同套接字状态下,它们的含义不同。

套接字处于连接状态(Established):

Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)。

Send-Q 表示还没有被远端主机确认的字节数(即发送队列长度)。

套接字处于监听状态(Listening):

Recv-Q 表示全连接队列的长度。

Send-Q 表示全连接队列的最大长度

3,什么是全连接?

服务器收到了客户端的 ACK,完成了 TCP 三次握手,

然后就会把这个连接挪到全连接队列中

这些全连接中的套接字,还需要被 accept() 系统调用取走,服务器才可以开始真正处理客户端的请求。

什么是半连接队列?

半连接是指还没有完成 TCP 三次握手的连接,连接只进行了一半。

服务器收到了客户端的 SYN 包后,就会把这个连接放到半连接队列中,

然后再向客户端发送 SYN+ACK 包

六,例子二:用ss观察 TCP 连接数

[root@centos8 liuhongdi]# ss -s
Total: 1153
TCP: 10 (estab 0, closed 1, orphaned 0, timewait 0) Transport Total IP IPv6
RAW 1 0 1
UDP 14 9 5
TCP 9 5 4
INET 24 14 10
FRAG 0 0 0

说明:

estab:#已连接

closed:#已关闭

orphaned: #孤儿套接字

timewait: #处于关闭连接时等待状态

备注:什么是TIME_WAIT状态?

主动关闭方在发送四次挥手的最后一个ACK后会变为TIME_WAIT状态,持续时间为2MSL(Linux中一个MSL是30秒,是不可配置的)

七,例子三:ss使用选项:

1,显示所有状态是established(连接已建立)的套接字

[root@centos8 liuhongdi]# ss -o state 'established'

说明:状态的取值:

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相反.

2,  使用src和dst过滤ip

说明:

src  源地址

[root@centos8 liuhongdi]# ss src 192.168.3.14
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53412
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53413

dst   目标地址

[root@centos8 liuhongdi]# ss dst 192.168.3.9
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53412
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53413

还可以指定端口号:

[root@centos8 liuhongdi]# ss src 192.168.3.14:http
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp FIN-WAIT-2 0 0 192.168.3.14:http 192.168.3.9:53412
[root@centos8 liuhongdi]# ss dst 192.168.3.9:53412
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp FIN-WAIT-2 0 0 192.168.3.14:http 192.168.3.9:53412

3,只指定端口号:

sport   源端口号

[root@centos8 liuhongdi]# ss sport 80
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53482
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53483

dport           目标端口号

[root@centos8 liuhongdi]# ss dport 53482
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.3.14:http 192.168.3.9:53482

八,本地centos的版本:

[root@centos8 conf]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

centos8平台用ss监控网络的更多相关文章

  1. centos8平台基于iftop监控网络流量

    一,iftop的作用: 基于ip统计外部机器与本机之间的网络流量, 可以方便的查看各客户端是否有非正常的到本机的访问 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...

  2. centos8平台使用iotop监控磁盘io

    一,iotop的作用: iotop是监视磁盘I/O使用状况的top类工具, 可以针对进程和线程统计io的使用情况 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog ...

  3. centos8平台使用iostat监控磁盘io

    一,iostat所属的包: [root@centos8 ~]# whereis iostat iostat: /usr/bin/iostat /usr/share/man/man1/iostat.1. ...

  4. centos8平台使用pidstat监控cpu/内存/io

    一,安装pidstat: 1,安装 [root@localhost yum.repos.d]# yum install sysstat 2,查看版本: [root@localhost ~]# pids ...

  5. centos8平台使用mpstat监控cpu

    一,mpstat的用途 mpstat是 Multiprocessor Statistics的缩写,是实时cpu监控工具. 在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...

  6. centos8平台使用vmstat监控系统

    一,vmstat的用途和特点: vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数. 相对于 iostat 来说,vmstat 可 ...

  7. centos8平台使用slabtop监控slab内存的状态

    一,slabtop 所属的包: [root@yjweb ~]# whereis slabtop slabtop: /usr/bin/slabtop /usr/share/man/man1/slabto ...

  8. Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  9. 运用Ntop监控网络流量(视频Demo)

    运用Ntop监控网络流量 ____网络流量反映了网络的运行状态,是判别网络运行是否正常的关键数据,在实际的网络中,如果对网络流量控制得不好或发生网络拥塞,将会导致网络吞吐量下降.网络性能降低.通过流量 ...

随机推荐

  1. 如何使用dockerfile将jar包生成镜像

    1.编写dockersfile FROM java:8 ADD SPRINGCLOUD.jar app.jar RUN bash -c ‘touch /app.jar’ ENTRYPOINT [&qu ...

  2. 本机ping不通虚拟机,但虚拟机可以ping通本机时怎么解决

    在各自网络都连接的情况下,本机ping不通虚拟机,但虚拟机可以ping通本机时解决方案: 1.linux虚拟机中连接方式选择NAT模式 2.本地启动VMnet8,然后选择VMnet8的属性,手动输入和 ...

  3. 使用VSCode和CMake构建跨平台的C/C++开发环境

    日前在学习制作LearnOpenGL教程的实战项目Breakout游戏时,希望能将这个小游戏开发成跨平台的,支持在多个平台运行.工欲善其事必先利其器,首先需要做的自然是搭建一个舒服的跨平台C/C++开 ...

  4. .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书

    简介 加解密现状,编写此系列文章的背景: 需要考虑系统环境兼容性问题(Linux.Windows) 语言互通问题(如C#.Java等)(加解密本质上没有语言之分,所以原则上不存在互通性问题) 网上资料 ...

  5. linux学习(九)Linux知识点汇总

    一.基础概念 Q:linux是什么?  Linux是一种基于UNIX的操作系统,它基于Linux内核,常被用作服务器的操作系统. Q:UNIX和LINUX有什么区别? Unix:收费的,商用的,拥有许 ...

  6. idea开启Run DashBoard

    0-前言 IDEA中,run dashboard是一个直观.方便好用的面板,谁用谁知道: 但是它不是默认开启的,开启有两种方式: 方式一: 1.新项目中,有时会弹出面板让我们点击开启,点击一下就能开启 ...

  7. PHP审计基础

    php核心配置 register_globals 全局变量注册开关 设置为on时,把GET/POST的变量注册成全局变量 PHP 5.4.0中移除 allow_url_include 包含远程文件 设 ...

  8. 理解 JAVABEAN EJB POJO

    <Spring实战>第一章:基本理念.各类名称熟语 POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混 ...

  9. Linux Shell脚本简单语法汇总(Deepin下运行)

    整理自: https://www.runoob.com/?s=shell Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 sh ...

  10. 修改默认配置文件.android.gradle.androidstudio到其他目录

    .android 这个文件夹主要是用来存放模拟器的,是占用空间最大的一个,如果你没有使用它的模拟器,可以直接把这个文件夹删除.因为我建立了两个x86的模拟器,吃掉了我20G的空间.果断搬走. 复制当前 ...