netstat 详解

优质博文:IT-BLOG-CN

一、netstat参数

参数说明
-a–all显示所有连线中的Socket
-A <网络类型>或–<网络类型> 列出该网络类型连线中的相关地址
-c–continuous持续列出网络状态
-C–cache显示路由器配置的快取信息
-e–extend显示网络其他相关信息
-F–fib显示FIB
-g–groups显示多重广播功能群组组员名单
-h–help在线帮助
-i–interfaces显示网络界面信息表单
-l–listening显示监控中的服务器的Socket
-M–masquerade显示伪装的网络连线
-n–numeric直接使用IP地址,而不通过域名服务器
-N–netlink–symbolic显示网络硬件外围设备的符号连接名称
-o–timers显示计时器
-p–programs显示正在使用Socket的程序识别码和程序名称
-r–route显示Routing Table
-s–statistice显示网络工作信息统计表
-t–tcp显示TCP传输协议的连线状况
-u–udp显示UDP传输协议的连线状况
-v–verbose显示指令执行过程
-V–version显示版本信息
-w–raw显示RAW传输协议的连线状况
-x–unix此参数的效果和指定-A unix参数相同
–ip–inet此参数的效果和指定-A inet参数相同

二、netstat输出内容

查看当前所有tcp/udp端口为例:

[root@pdai-centos ~]# netstat -tulnp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1904/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1750/cupsd          
tcp        0      0 0.0.0.0:44567               0.0.0.0:*                   LISTEN      1713/rpc.statd      
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      1965/zabbix_agentd  
tcp        0      0 172.172.230.xxx:3306        0.0.0.0:*                   LISTEN      31849/mysqld        
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1576/rpcbind        
tcp        0      0 172.172.230.xxx:46327       172.172.100.3:80            TIME_WAIT   -                   
tcp        0      0 172.172.230.xxx:46329       172.172.100.3:80            TIME_WAIT   -                   
tcp        0     52 172.172.230.xxx:22          172.172.173.222:50043       ESTABLISHED 6095/sshd           
tcp        0      0 172.172.230.xxx:46326       172.172.100.3:80            TIME_WAIT   -                   
tcp        0      0 172.172.230.xxx:5401        172.172.100.3:443           TIME_WAIT   -                   
tcp        0      0 :::22                       :::*                        LISTEN      1904/sshd           
tcp        0      0 ::1:631                     :::*                        LISTEN      1750/cupsd          
tcp        0      0 :::11776                    :::*                        LISTEN      1713/rpc.statd      
tcp        0      0 :::10050                    :::*                        LISTEN      1965/zabbix_agentd  
tcp        0      0 :::111                      :::*                        LISTEN      1576/rpcbind    

【1】Proto 协议名(tcp协议还是udp协议)
【2】recv-Q 网络接收队列表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务denial-of-service攻击。
【3】send-Q 网路发送队列 对方没有收到的数据或者说没有Ack的,还是本地缓冲区。如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。从步骤一的结果中可以看到22端口对应的链路的send-Q中堆积了大量的数据包 ,可以判定是发送数据给目的地址的时候出现了阻塞的问题,导致了包堆积在本地缓存中,不能成功发出去。
【4】Local Address
    ☑️ 部分的0.0.0.0:22表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210172.172.230.11两个ip地址,那么0.0.0.0:22此时表示监听172.172.230.210,172.172.230.xxx,127.0.0.1三个地址的22端口
    ☑️ :::22这个也表示监听本地所有ip22端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址NOTE:::” 这三个: 的前两个"::",是0:0:0:0:0:0:0:0的缩写,相当于IPv60.0.0.0,就是本机的所有IPv6地址,第三个:IP和端口的分隔符
    ☑️127.0.0.1:631这个表示监听本机的loopback地址的631端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip协议进行远程访问)::1:631这个表示监听IPv6的回环地址的631端口,::1这个表示IPv6loopback地址172.172.230.xxx:3306这里我们看到我们的mysqld进程监听的是172.172.230.xxx3306端口,这是因为我们在启动的时候指定了bind_address=172.172.230.xxx参数,如果不指定bind_address的话,mysqld默认监听:::3306(本机所有ip地址的3306端口-IPv6)

【5】Foreign Address 与本机端口通信的外部socket。显示规则与Local Address相同
【6】State 共有11种链路状态+ Unknown,共计12state值,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。

状态描述
LISTEN首先服务端需要打开一个socket进行监听,状态为LISTEN./* The socket is listening for incoming connections.侦听来自远方TCP端口的连接请求 */
SYN_SENT客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT./*The socket is actively attempting to establish a connection. 在发送连接请求后等待匹配的连接请求 */
SYN_RECV服务端应发出ACK确认客户端的SYN,同时自己向客户端发送一个SYN。之后状态置为SYN_RECV/* A connection request has been received from the network. 在收到和发送一个连接请求后等待对连接请求的确认 */
ESTABLISHED代表一个打开的连接,双方可以进行或已经在数据交互了。/* The socket has an established connection. 代表一个打开的连接,数据可以传送给用户 */
FIN_WAIT1主动关闭active close端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态./* The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */
CLOSE_WAIT被动关闭passive closeTCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT./* The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 */
FIN_WAIT2主动关闭端接到ACK后,就进入了FIN-WAIT-2 ./* Connection is closed, and the socket is waiting for a shutdown from the remote end. 从远程TCP等待连接中断请求 */
LAST_ACK被动关闭端一段时间后,接收到文件结束符的应用程 序将调用CLOSE关闭连接。这导致它的TCP也发送一个FIN,等待对方的ACK。就进入了LAST-ACK ./* The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认 */
TIME_WAIT在主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态。/* The socket is waiting after close to handle packets still in the network.等待足够的时间以确保远程TCP接收到连接中断请求的确认 */
CLOSING比较少见./* Both sockets are shut down but we still don’t have all our data sent. 等待远程TCP对连接中断的确认 */
CLOSED被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束./* The socket is not being used. 没有任何连接状态 */
UNKNOWN未知的Socket状态。/* The state of the socket is unknown. */

SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。

【7】PID/ProgramPID即进程id Program即使用该socket的应用程序

三、常用指令汇总

【1】查找请求数前10IP(常用于查找攻来源):

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n10netstat -ant |awk '/:80/{split($5,ip,:);++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n10

【2】查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n10

【3】找查较多的SYN连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

【4】找出程序运行的端口

[root@pdai-centos ~]# netstat -ap | grep ssh 
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      1120/sshd           
tcp        0     64 pdai-centos:ssh      117.82.229.xx:41408    ESTABLISHED 28968/sshd: xx@pt 
tcp        0      0 pdai-centos:ssh      xxx.122.15.xx:32966     TIME_WAIT   -                   
tcp        0      0 pdai-centos:ssh      203.xxx.85.146:43730    ESTABLISHED 687/sshd: xx [pri 
tcp        0      0 pdai-centos:ssh      134.xx.xx.36:54474     TIME_WAIT   -                   
tcp        0      0 pdai-centos:ssh      64.xx.111.127:45444    TIME_WAIT   -                   
unix  3      [ ]         STREAM     CONNECTED     16580    1120/sshd            
unix  2      [ ]         DGRAM                    113619201 28968/sshd: root@pt  

【5】列出所有的TCP端口

[root@pdai-centos ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 VM-0-14-cent:cslistener 0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:us-srv          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:https           0.0.0.0:*               LISTEN     
tcp        0      0 pdai-centos:https    39.144.22.xx:50742       FIN_WAIT2  
tcp        0      0 pdai-centos:https    59.71.243.xx:6994      ESTABLISHED
tcp        0      0 pdai-centos:https    125.85.238.xx:7096      FIN_WAIT2  
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:distinct           [::]:*                  LISTEN     
tcp6       0      0 [::]:ddi-tcp-1          [::]:*                  LISTEN     
tcp6       1      0 172.21.0.14:ddi-tcp-1   140.82.115.xx:24923    CLOSE_WAIT 
tcp6       1      0 172.21.0.14:ddi-tcp-1   140.82.115.xx:64953    CLOSE_WAIT 
tcp6       1      0 172.21.0.14:ddi-tcp-1   140.82.115.xx:55955    CLOSE_WAIT 

【6】列出所有的UDP端口

[root@pdai-centos ~]# netstat -au 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 pdai-centos:ntp      0.0.0.0:*                          
udp        0      0 pdai-centos:ntp      0.0.0.0:*                          
udp6       0      0 pdai-centos:ntp      [::]:*                             
udp6       0      0 pdai-centos:ntp      [::]:*  

【7】列出所有监听TCP端口的socket

[root@pdai-centos ~]# netstat -lt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 VM-0-14-cent:cslistener 0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:us-srv          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:https           0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:distinct           [::]:*                  LISTEN     
tcp6       0      0 [::]:ddi-tcp-1          [::]:*                  LISTEN 

【8】列出所有监听UDP端口的socket

[root@pdai-centos ~]# netstat -lu 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 pdai-centos:ntp      0.0.0.0:*                          
udp        0      0 pdai-centos:ntp      0.0.0.0:*                          
udp6       0      0 pdai-centos:ntp      [::]:*                             
udp6       0      0 pdai-centos:ntp      [::]:* 

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

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

相关文章

实验1-2 简单求阶乘问题

PTA浙大版《C语言程序设计实验与习题指导&#xff08;第4版&#xff09;》题目集&#xff1a;实验1-2 简单求阶乘问题 #include<stdio.h> int main(){int n;scanf("%d",&n);//此处是输入数值int a,sum1; //a 是循环的次数&#xff1b;sum 是输出数值for(a…

yarn安装electron时报错RequestError:socket hang up

安装electron时候&#xff0c;出现RequestError:socket hang up这样的错误&#xff0c;找了半天很多方式都是用旧淘宝源&#xff0c;导致根本安装不上去。 在项目的根目录下创建.npmrc文件&#xff0c;添加以下内容 # registryhttps://mirrors.huaweicloud.com/repository/np…

Optional类的使用 java8(附代码)

&#x1f370; 个人主页:_小白不加班__ &#x1f35e;文章有不合理的地方请各位大佬指正。 &#x1f349;文章不定期持续更新&#xff0c;如果我的文章对你有帮助➡️ 关注&#x1f64f;&#x1f3fb; 点赞&#x1f44d; 收藏⭐️ 文章目录 一、什么是Optional&#xff1f;二、…

源码拆解SpringBoot的自动配置机制

SpringBoot相比于Spring系列的前作&#xff0c;很大的一个亮点就是将配置进行了简化&#xff0c;引入了自动化配置&#xff0c;仅靠几个注解和yml文件就取代了之前XML的繁琐配置机制&#xff0c;这也是SpringBoot的独有特点&#xff0c;下面我们从源码角度&#xff0c;一点点拆…

【自然语言处理】概论(一):自然语言处理概要

1.1 概论&#xff1a;&#xff08;一&#xff09;自然语言处理概要 知识点 自然语言的定义&#xff1a;人类交流使用的&#xff0c;包括口语和书面语的信息交流方式。AI的终极目标&#xff1a;使计算机具备理解&#xff08;听、读&#xff09;和生成&#xff08;说、写&#…

使用 WebSocket 实现实时聊天

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

PySide(PyQt)使用QPropertyAnimation制作动态界面

主脚本&#xff1a; # encoding: utf-8 import os import sysfrom PySide6.QtCore import QPropertyAnimation, QEasingCurvefrom UIS import *# 主画面类 class MainWindow(QMainWindow, animationButton_ui.Ui_MainWindow):def __init__(self):super().__init__()self.setup…

GitHub狂飙3万star的LLM公开资料 - 大模型入门教程

先用一张图片说明这篇blog多火热&#xff01; 本篇大型语言模型&#xff08;LLM&#xff09;课程分为三个部分&#xff1a; &#x1f9e9; LLM基础&#xff1a;涵盖了数学、Python和神经网络的基本知识。 &#x1f9d1;‍&#x1f52c; LLM科学家&#xff1a;专注于使用最新技…

Spring源码学习笔记之@Async源码

文章目录 一、简介二、异步任务Async的使用方法2.1、第一步、配置类上加EnableAsync注解2.2、第二步、自定义线程池2.2.1、方法一、不配置自定义线程池使用默认线程池2.2.2、方法二、使用AsyncConfigurer指定线程池2.2.3、方法三、使用自定义的线程池Excutor2.2.4、方法四、使用…

【代码】Python3|Scrapy框架初探(汽车之家大连市二手车车辆数据爬取、清洗与可视化)

本篇主要是整个项目的介绍&#xff0c;没提到太多琐碎的技术细节&#xff0c;以后有空的话会整理一下 Scrapy 和原生爬虫的差异&#xff0c;还有它坑人的一些地方&#xff0c;单发出来。 开源地址&#xff1a;https://github.com/shandianchengzi/car_home_spider 使用说明&a…

Vue3扁平化Tree组件的前端分页实现

大家好&#xff0c;我是小卷。得益于JuanTree的扁平化设计&#xff0c;在数据量很大的情况下除了懒加载&#xff0c;使用前端分页也是一种解决渲染性能问题的可选方案。 用法 要实现的文档&#xff1a; 分页效果&#xff1a; 实现 新增属性&#xff1a; 组件setup方法中新增…

科普文:万字梳理31个Kafka问题

1、 kafka 是什么,有什么作用 2、Kafka为什么这么快 3、Kafka架构及名词解释 4、Kafka中的AR、ISR、OSR代表什么 5、HW、LEO代表什么 6、ISR收缩性 7、kafka follower如何与leader同步数据 8、Zookeeper 在 Kafka 中的作用&#xff08;早期&#xff09; 9、Kafka如何快…

MobaXterm 软件安装及使用

MobaXterm 软件安装及使用 1. 引言 MobaXterm是一款功能强大的终端软件&#xff0c;支持SSH、Telnet、RDP、VNC、FTP、SFTP、X11转发和串口等远程会话功能。它使得在Windows系统上进行Linux系统的远程管理和文件传输变得简单便捷。 2. MobaXterm 软件下载 下载链接&#xff…

Python数值计算(13)

1. 数学知识 虽然在给定了N个点以后&#xff0c;通过这个点的最小幂多项式是确定的&#xff0c;但是表达方式可不止一种&#xff0c;例如前面提到的系数方式&#xff0c;根方式&#xff0c;还有插值的Lagrange形式等。这里介绍另外一种表达方式&#xff1a; 显然这个式子最高次…

CTF ssrf 基础入门 (一)

0x01 引言 我发现我其实并不是很明白这个东西&#xff0c;有些微妙&#xff0c;而且记忆中也就记得Gopherus这个工具了&#xff0c;所以重新学习了一下&#xff0c;顺便记录一下吧 0x02 辨别 我们拿到一个题目&#xff0c;他的名字可能就是题目类型&#xff0c;但是也有可能…

Java小抄|Java中的List与Map转换

文章目录 1 List<User> 转Map<User.id,User>2 基础类型的转换&#xff1a;List < Long> 转 Map<Long,Long> 1 List 转Map<User.id,User> Map<Long, User> userMap userList.stream().collect(Collectors.toMap(User::getId, v -> v, …

一个优秀的团队里,往往都有这几种人

“独木不成林&#xff0c;单弦难成曲”&#xff0c;一个优秀的团队&#xff0c;需要团队成员之间形成紧密的合作关系&#xff0c;充分发挥各自的优势和特长时&#xff0c;在各自的岗位发光发热&#xff0c;共同推动团队不断向前发展。一个优秀的团队中不可或缺的几个关键角色&a…

视觉SLAM第二讲

SLAM分为定位和建图两个问题。 定位问题 定位问题是通过传感器观测数据直接或间接求解位置和姿态。 通常可以分为两类&#xff1a;基于已知地图的定位和基于未知地图的定位。 基于已知地图的定位 利用预先构建的地图&#xff0c;结合传感器数据进行全局定位。SLAM中的全局…

【计算机网络原理】网络层IP协议的总结和数据链路层以太网协议的总结.

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Oat++ 后端实现跨域

这里记录在官方的例子中&#xff0c;加入跨域。Oat Example-CRUD 在官方的例子中&#xff0c;加入跨域。 Oat Example-CRUD 修改AppComponent.hpp文件中的代码&#xff0c;如下&#xff1a; #include "AppComponent.hpp"#include "controller/UserController…