linux的netstat命令和ss命令

1. 网络状态

State状态
LISTENING监听中,服务端需要打开一个socket进行监听,侦听来自远方TCP端口的连接请求
ESTABLISHED已连接,代表一个打开的连接,双方可以进行或已经在数据交互了
SYN_SENT客户端通过应用程序调用connect发送一个SYN以请求建立一个连接。在收到ACK后,状态转为ESTABLIHSED
CLOSE_WAIT被动关闭端接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序)
TIME_WAIT 主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态
LAST_ACK等待对方回应一个ACK(这是准备关闭连接的一个步骤,意味着这个连接正在关闭)

2. netstat 命令的用法格式和选项如下:

usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vWnNcaeol] [<Socket> ...]
       netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

        -r, --route              显示路由表
        -I, --interfaces=<Iface> 显示<Iface>的接口表
        -i, --interfaces         显示网络界面信息表单
        -g, --groups             显示多重广播功能群组组员名单
        -s, --statistics         显示网络工作信息统计表
        -M, --masquerade         显示伪装的网络连线

        -v, --verbose            显示指令执行过程
        -V, --version            显示版本信息
        -W, --wide               不截断IP地址
        -w, --raw                显示RAW传输协议的连线状况
        -n, --numeric            不解析名称,以数字形式显示地址和端口号
        --numeric-hosts          don't resolve host names
        --numeric-ports          don't resolve port names
        --numeric-users          don't resolve user names
        -N, --symbolic           显示网络硬件外围设备的符号连接名称
        -e, --extend             显示网络其他相关信息
        -p, --programs           显示正在使用Socket的程序识别码和程序名称
        -o, --timers             显示计时器(显示定时器)
        -c, --continuous         持续列出网络状态

        -l, --listening          显示监控中的服务器的Socket
        -a, --all                示所有连线中的Socket
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              显示路由缓存而不是FIB
        -Z, --context            显示套接字的SELinux安全上下文

3. 功能使用例子

netstat -anop | grep 端口号

显示所有连接和监听端口并显示每个连接相关的进程ID
netstat -ano
netstat -ano: 显示所有连接和监听端口,以数字形式显示地址和端口号,并显示与每个连接相关的进程 ID

显示所有已建立的连接
netstat -ano | grep ESTABLISHED

显示每个进程的连接数
netstat -ano | grep ESTABLISHED | awk '{print $5}' | sort | uniq -c | sort -nr | head -10

grep ESTABLISHED :过滤出已建立的连接。
awk '{print $5}' :提取出第5列进程ID。
sort | uniq -c | sort -nr :排序统计每个进程ID的连接数量,并按照连接数量从高到低排序;

sort:排序。
uniq -c:用于在文本中查找并计数唯一行,有点像count - group by
sort -nr:用于对文本进行排序。
-n 选项表示按照数值大小排序,而不是按照字典序排序;
-r 选项表示按照逆序排序,即从大到小排序。
head : 显示前面的若干行。

显示每个IP地址的连接数
netstat -ano | awk '{print $3}' | cut -d: -f1 | sort | uniq -c | sort -rn


显示每种类型TCP/UDP的连接数
netstat -ano | awk '{print $1}' | sort | uniq -c

显示指定进程ID网络状态的数量// TCP 网络状态的数量
netstat -ano |grep tcp | awk '{print $6}' | sort | uniq -c


显示端口占用数量
netstat -ano | grep -c :   注意冒号和前面的命令是一个整体
或者
netstat -a -n | grep -c "TCP"
netstat -a -n | grep -c "UDP"
netstat -a -n | grep -w "TCP" | wc -l
netstat -ano | awk 'NR>2{print $1}' | sort | uniq -c | awk '{print $2 "占用了"$1"个端口"}'
上面的都有重复
netstat -ano | awk '{print $3}' | cut -d: -f1 | sort | uniq -c | sort -rn

"grep -c :" : grep 命令用于在文件或输出中查找与指定模式匹配的行,并将匹配的行打印出来。

    其中 -c 选项用于统计匹配到的行数
    ":" : 表示匹配冒号字符。 因此,grep -c : 命令会统计输出或文件中包含冒号字符的行数。


显示指定进程ID指定协议的数量
netstat -ano | grep 进程ID | grep UDP | grep -v -E ':5353|::' 
"-v":排除相关的行。grep -v UDP排除UDP相关的行。
"-E 'keyword1|keyword2|keyword3'" : 匹配多个关键词,keyword1、keyword2和keyword3是关键词,用|分隔。
"wc -l" : 用于统计文件的行数
    netstat -ano | grep 6712 | grep UDP | grep -v -E ':5353|::' | wc -l

4. ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain 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连接以及更多

ss 命令格式

Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
        -h, --help 显示帮助信息
        -V, --version 输出版本信息
        -n, --numeric 不解析服务名称
        -r, --resolve 解析主机名
        -a, --all 显示所有套接字
        -l, --listening 显示监听套接字
        -o, --options 显示定时器信息
        -e, --extended 显示详细的套接字信息
        -m, --memory 显示套接字内存使用情况
        -p, --processes 显示使用套接字的进程
        -i, --info 显示内部TCP信息
        -s, --summary 显示套接字使用概况
        -b, --bpf 显示bpf过滤套接字信息
        -E, --events 持续显示被销毁的套接字
        -Z, --context 显示进程的SELinux安全上下文
        -z, --contexts 显示进程和套接字的SELinux安全上下文
        -N, --net 切换到指定的网络命名空间名称
        -4, --ipv4 仅显示IP版本4套接字
        -6, --ipv6 仅显示IP版本6套接字
        -0, --packet 显示PACKET套接字
        -t, --tcp 仅显示TCP套接字
        -S, --sctp 仅显示SCTP套接字
        -u, --udp 仅显示UDP套接字
        -d, --dccp 仅显示DCCP套接字
        -w, --raw 仅显示RAW套接字
        -x, --unix 仅显示Unix域套接字
            --vsock 仅显示vsock套接字
        -f, --family=FAMILY 显示指定类型的套接字,FAMILY类型包括:
                inet、inet6、link、unix、netlink、vsock、help。
        -K, --kill 强制关闭套接字,并显示被关闭的套接字。
        -H, --no-header 禁止显示标题行。
        -A, --query=QUERY, --socket=QUERY 查询指定类型的套接字,QUERY类型包括:
            all、inet、tcp、udp、raw、unix、unix_dgram、unix_stream、unix_seqpacket、                        
            packet、netlink、vsock_stream、vsock_dgram等。
        -D, --diag=FILE 将TCP套接字的原始信息导出到文件。
        -F, --filter=FILE 从文件中读取过滤信息。

5. 使用例子

        


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详细信息:
分别使用netstat 和ss 统计服务器并发连接数
    1. time netstat -ant | grep ESTABLISHED | wc -l
    2. time ss -o state ESTABLISHED | wc -l

结果如下图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/187650.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

The Bridge:从临床数据到临床应用(预测模型总结)

The Bridge:从临床数据到临床应用&#xff08;预测模型总结&#xff09; 如果说把临床预测模型比作临床数据和临床应用之间的一座“桥梁”&#xff0c;那它应该包括这样几个环节&#xff1a;模型的构建和评价、模型的概率矫正、模型决策阈值的确定和模型的局部再评价。 模型的构…

大金仓数据库:kingbase学习

kingbase学习 1.简介2. 安装3. 基础使用3.1 客户端连接3.2 表数据测试3.2.1 建表创建字段备注 3.2.2 数据写入测试3.2.2 查询测试json查询测试 4.springboot实战4.1 maven依赖4.2 连接配置4.3 mybatis-plus测试4.4 liquibase整合(1). 使用pg方式替换kingbase驱动上面(2). 修改j…

路由器DHCP分配IP地址规则

路由器DHCP分配IP地址的机制&#xff1a; 先设置一个IP地址池&#xff0c;假设是192.168.1.100-192.168.1.199一共100个。 来一个请求&#xff0c;看一下是不是以前请求过的地址&#xff0c;如果是&#xff0c;还是返回以前给过的IP&#xff0c;然后将到期时间(有些路由器默认…

45岁后,3部位“越干净”,往往身体越健康,占一个也要恭喜!

众所周知&#xff0c;人的生命有长有短&#xff0c;而我们的身体健康状态&#xff0c;也同样会受到年龄的影响&#xff0c;就身体的年龄层次而言&#xff0c;往往需要我们用身体内部的干净程度来维持&#xff0c;换句话说就是&#xff1a;若是你的身体内部越干净&#xff0c;那…

LeetCode-1689. 十-二进制数的最少数目 C/C++实现 超详细思路及过程[M]

&#x1f388;归属专栏&#xff1a;深夜咖啡配算法 &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;上一篇博客这里好像没改&#xff0c;那就不改了。 文章目录 LeetCode-1689. 十-二进制数的最少数目&#x1f697;题目&#x1f686;题目描述&…

CPU+GPU多样化算力,ZStack Cloud助力游戏精酿核心业务上云

游戏精酿通过ZStack Cloud云平台提供高性能、高可用的云主机、云存储和云网络&#xff1b;前期通过超融合架构快速构建云基础设施&#xff0c;来支持Jira、Redis等关键业务&#xff1b;并实现对原有私有云平台业务的替代&#xff0c;按需将原有私有云业务滚动迁移到ZStack Clou…

每日一题(LeetCode)----链表--链表最大孪生和

每日一题(LeetCode)----链表–链表最大孪生和 1.题目&#xff08;2130. 链表最大孪生和&#xff09; 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n…

Linux 6.7全面改进x86 CPU微码加载方式

导读最近&#xff0c;社区在清理 Linux 上的 Intel/AMD x86 CPU 微代码加载方面做了大量的工作&#xff0c;这些工作现已合并到 Linux 6.7 中。 由于在启动时加载 CPU 微代码对于减少不断出现的新 CPU 安全漏洞以及有时解决功能问题非常重要&#xff0c;Thomas Gleixner 最近开…

如何将Postman API转换JMeter进行扩展

可扩展性 Postman测试无法扩展。如果您的集合中有很多请求&#xff0c;Postman / Newman将使用1个线程&#xff08;用户&#xff09;并按顺序执行这些请求&#xff0c;而不是使用多个线程并发执行。 性能测试能力 由于可扩展性限制&#xff0c;Postman不适合API性能测试。性…

TYPE-C、PD原理

一、Type-C简介以及历史 自1998年以来&#xff0c;USB发布至今&#xff0c;USB已经走过20个年头有余了。在这20年间&#xff0c;USB-IF组织发布N种接口状态&#xff0c;包括A口、B口、MINI-A、MINI-B、Micro-A、Micro-B等等接口形态&#xff0c;由于各家产品的喜好不同&#x…

【分布式】分布式中的时钟

一、物理时钟 vs 逻辑时钟 时钟的存在主要是为了标识事件的发生顺序。 分布式系统不使用物理时钟记录事件&#xff0c;分布式系统中每个节点记录的时间并不一样&#xff0c;即使设置了 NTP 时间同步节点间也存在毫秒级别的偏差 所以需要有另外的方法记录事件顺序关系&#x…

2024年天津天狮学院专升本护理学专业《护理学基础》考试大纲

天津天狮学院2024年护理学专业高职升本入学考试《护理学基础》考试大纲 一、考试性质 《护理学基础》专业课程考试是天津天狮学院护理专业高职升本入学考试的必考科目之一&#xff0c;其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。 《护理学基础》考…

现代 C++ 函数式编程指南

现代 C 函数式编程指南 什么是 柯里化 &#xff08;Curry&#xff09;什么是 部分应用 &#xff08;Partial Application&#xff09; 二元函数 &#xff08;Partial Application&#xff09;参数排序 &#xff08;Partial Application&#xff09; 应用场景 计算碳衰减周期求年…

Web前端 -----【Vue】(vue组件基础)一文带你了解组件的创建、注册、使用(包括组件的嵌套)

目录 前言 什么是组件 为什么使用组件化开发 组件的使用 组件的使用分为三个步骤 创建组件 为什么配置项中的data不能使用直接对象的形式&#xff0c;必须使用function&#xff08;重点&#xff01;&#xff01;&#xff01;面试喜欢问&#xff09; 注册组件 使用组件 …

【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效

一、背景 需求&#xff1a;在列表中添加定期出账的开关按钮&#xff0c;点击开关时&#xff0c;原来的状态不改变&#xff0c;弹出弹窗&#xff1b;点击弹窗取消按钮&#xff1a;状态不改变&#xff0c;点击弹窗确定按钮&#xff1a;状态改变&#xff0c;并调取列表数据刷新页…

JavaWeb学习(未完结)

文章目录 一、基本概念1.1 动态Web网站简介1.2 web应用程序1.3 静态web1.4 动态web 二、web服务器2.1 技术2.2 应用服务器2.3 安装 jdk8 三、Tomcat3.1 安装 Tomcat93.2 文件说明3.3 启动并使用Tomcat3.4 关闭Tomcat3.5 可能遇到的问题3.6 配置3.6.1 修改测试访问的网页地址3.6…

水淹七军(递归,又是递归)

北大2023级最强新生问我的&#xff0c;最后他的问题说是重写了一遍就解决了 乐死了&#xff0c;有的时候根本看不出源代码漏了哪里 我的思路是&#xff1a; 一个数组记录本次放水所经过的格子&#xff0c;经过的不再递归 一个数组记录地图上各地点的高度 一个数组记录地图…

力扣日记11.25-【二叉树篇】对称二叉树

力扣日记&#xff1a;【二叉树篇】对称二叉树 日期&#xff1a;2023.11.25 参考&#xff1a;代码随想录、力扣 101. 对称二叉树 题目描述 难度&#xff1a;简单 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,…

操作无法完成错误0x0000709的解决办法,解决0x0000709错误

操作无法完成错误0x0000709是一种常见的Windows错误。这篇文章将带大家了解错误的原因&#xff0c;并提供一些解决该问题的方法&#xff0c;希望能够帮助大家解决0x0000709错误问题。 操作系统错误是我们在使用电脑时经常遇到的问题之一。其中之一就是操作无法完成错误0x000070…

Redis-主从与哨兵架构

Jedis使用 Jedis连接代码示例&#xff1a; 1、引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> 2、访问代码 public class JedisSingleTe…