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 -10grep 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 -l2. time ss -o state ESTABLISHED | wc -l

结果如下图

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue和SpringBoot的企业项目合同信息系统

项目编号&#xff1a; S 046 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S046&#xff0c;文末获取源码。} 项目编号&#xff1a;S046&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合…

运维 | 四层和七层负载均衡介绍

关注: CodingTechWork 负载均衡 负载均衡介绍 概念 负载均衡是建立在现有的网络结构之上&#xff0c;提供一种廉价且透明的方式进行网络设备和服务器带宽的扩展&#xff0c;从而增加吞吐量&#xff0c;加强应用服务的数据处理能力&#xff0c;有效提高网络的灵活性和可用性。…

找不到 sun.misc.BASE64Decoder ,sun.misc.BASE64Encoder 类

找不到 sun.misc.BASE64Decoder &#xff0c;sun.misc.BASE64Encoder 类 1. 现象 idea 引用报错 找不到对应的包 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;2. 原因 因为sun.misc.BASE64Decoder和sun.misc.BASE64Encoder是Java的内部API&#xff0c;通…

矩阵快速幂及应用实战[C/C++]

矩阵快速幂 矩阵快速幂可以用来优化递推问题&#xff0c;如状态机DP&#xff0c;需要一丢丢线性代数里面矩阵的概念&#xff0c;只需要知道简单的矩阵乘法&#xff0c;结合我们普通的二分快速幂就能很快的掌握矩阵快速幂。 问题引入 三步问题。有个小孩正在上楼梯&#xff0c;楼…

【海思SS528 | VDEC】MPP媒体处理软件V5.0 | VDEC的使用总结

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Python语言学习笔记之五(Python代码注解)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 注解与注释是不一样的&#xff0c;注解有更广泛的应用&#xff1b; 通过注解与注释都能提高代码的可读性和规…

RabbitMQ消息模型之Work Queues

Work Queues Work Queues&#xff0c;也被称为&#xff08;Task Queues&#xff09;&#xff0c;任务模型&#xff0c;也是官网给出的第二个模型&#xff0c;使用的交换机类型是直连direct&#xff0c;也是默认的交换机类型。当消息处理比较耗时的时候&#xff0c;可能生产消息…

Altium Designer学习笔记8

创建原理图元件&#xff1a; 画出原理图&#xff1a; 根据规则书画出原理图&#xff1a; 根据规则书画出封装图&#xff1a; 参照&#xff1a; 确认下过孔的内径和外径的最小允许值。

GoLang切片

一、切片基础 1、切片的定义 切片&#xff08;Slice&#xff09;是一个拥有相同类型元素的可变长度的序列它是基于数组类型做的一层封装它非常灵活&#xff0c;支持自动扩容切片是一个引用类型&#xff0c;它的内部结构包含地址、长度和容量声明切片类型的基本语法如下&#…

关于图像识别,你不得不知的三大要点

图像识别的重要性 图像识别不仅可以加速处理繁琐的任务&#xff0c;而且还可以比人工图像检查更快速或更准确地处理图像。图像识别是应用于诸多领域的关键技术&#xff0c;也是深度学习应用的主要驱动因素&#xff0c;如&#xff1a; 视觉检查&#xff1a;在制造过程中识别零部…

初刷leetcode题目(11)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

Linux:创建进程 -- fork,到底是什么?

相信大家在初学进程时&#xff0c;对fork函数创建进程一定会有很多的困惑&#xff0c;比如&#xff1a; 1.fork做了什么事情?? 2.为什么fork函数会有两个返回值?3.为什么fork的两个返回值&#xff0c;会给父进程谅回子进程pid&#xff0c;给子进程返回0?4.fork之后:父子进…

Unity 引擎宣布:自 2024 年起,开发者需支付费用!

Unity引擎宣布的新的收费模式&#xff0c;从2024年1月1日开始&#xff0c;根据游戏的安装量来对开发者进行收费。具体来说&#xff0c;每次游戏被下载时&#xff0c;UnityRuntime也会被安装&#xff0c;因此可能会产生额外的费用。对于开发者来说&#xff0c;需要注意以下几点&…

yml转properties工具

目前搜索到的大部分代码都存在以下问题&#xff1a; 复杂结构解析丢失解析后顺序错乱 所以自己写了一个&#xff0c;经过不充分测试&#xff0c;基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外&#xff0c;还可以生成代码、sql转json等&#xff0c;可…

嵌入式Linux学习(2)——经典CAN介绍(上)

目录 一. CAN与ISO-OSI Model 二. CAN通信 2.1 接线方式 2.1.1 闭环网络 2.1.2 开环网络 2.2 收发流程 2.2.1 发送 2.2.2 接收 三. CAN BUS访问与仲裁 3.1 “线与”机制​ 3.2 仲裁机制 REF CAN&#xff08;Controller Area Network&#xff09;总线协议是由 BOSC…

【蓝桥杯选拔赛真题26】C++字符串逆序 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++字符串逆序 一、题目要求 1、编程实现 2、输入输出 二、算法分析

MySQL 中的锁(三)

8.7. 死锁和空间锁 一般来说&#xff0c;只要有并发和加锁这两种情况的共同加持下&#xff0c;都会有死锁的身影。 死锁的具体成因&#xff0c;借用我们在并发编程中的内容&#xff1a; 8.7.1. 死锁 8.7.1.1. 概念 是指两个或两个以上的进程在执行过程中&#xff0c;由于竞…

JSON.stringify方法详解 后端接受JSON数据格式

1、方法定义&#xff1a;JSON.stringify(value, replacer, space) 参数说明&#xff1a; value&#xff1a;js对象 replacer&#xff1a;替换对象&#xff0c;可以是一个方法、对象或数组&#xff0c;将value按照替换规则展示。 space&#xff1a;填充参数&#xff0c;可以是数…

Linux常用命令——rm 命令

文章目录 Linux系统中的rm命令是一个非常强大且危险的工具&#xff0c;用于删除文件和目录。由于其具有不可逆的特性&#xff0c;了解其参数和正确使用非常重要。 1. 基本用法 rm命令的基本格式是rm [选项] 文件或目录。不带任何选项时&#xff0c;rm命令仅删除文件。 示例&a…

数据结构-二叉树(2)

3.4堆的应用 3.4.1 堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 1. 建堆 1.升序&#xff1a;建大堆&#xff1b; 2.降序&#xff1a;建小堆。 2. 利用堆删除思想来进行排序 这种写法有两个缺点&#xff1a; 1、先有一个堆的数据结构 …