Linux 命令 netstat 的使用

前言

netstat 是 Linux 系统的网络监控工具,功能是显示网络连接状态、路由表和网络接口等信息,可以让用户得知本机系统各端口的网络连接情况

1. 常用参数

netstat 常用的参数如下表所示,更多参数可以使用命令 man netstat 查看详细信息

参数功能
-a显示所有的 socket,默认只展示已连接的 socket
-n直接展示数字类型的 IP 和端口,不对 IP 和端口进行别名转换
-p显示正在使用连接的进程ID和进程名称
-r显示本机的路由表
-l显示本机正在监听中、等待连接的服务端进程
-i展示本机的网卡列表
-c动态展示连接信息
-s展示统计数据
-t展示使用 tcp 协议的连接
-u展示使用 udp 协议的连接
-x展示使用 unix 域 socket 的连接

2. 输出信息描述

以下是 netstat 命令的输出结果示例,连接信息大致分为了两个部分:

  1. Active Internet connections(网络连接),其各个列的含义如下:
    • Proto 通信协议
    • Recv-Q 接收队列,非 0 表示有接收数据堆积
    • Send-Q 发送队列,非 0 表示有发送数据堆积
    • Local Address 通信双方中的本地端地址
    • Foreign Address 通信双方中的外部端地址
    • State 连接的状态
  2. Active UNIX domain sockets(Unix域 socket),Linux 系统提供的本机进程间通信机制创建的连接,各个关键列的含义如下:
    • Proto 通信协议
    • RefCnt 连接所属的进程号
    • Type socket 的类型,STREAM 表示发送数据前需要先进行连接动作,DGRAM 表示直接发送数据
    • State 连接的状态
    • Path 连接所属的进程的启动路径
[root@aly-inner-001 ~]$ netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State   
tcp        0      0 10.128.39.51:60530      172.18.211.120:8080     TIME_WAIT    
tcp        0      0 127.0.0.1:25031         127.0.0.1:8500          TIME_WAIT  
tcp        0      0 10.128.39.51:65032      172.18.212.71:2379      ESTABLISHED
tcp        0      0 10.128.39.51:60524      172.18.211.120:8080     TIME_WAIT    
tcp        0      0 10.128.39.51:54271      172.18.1.217:389        ESTABLISHED
tcp        0      0 127.0.0.1:24981         127.0.0.1:8500          TIME_WAIT  
tcp        0      0 10.128.39.51:44648      10.128.38.226:5044      ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  6      [ ]         DGRAM                    546      /run/systemd/journal/socket
unix  14     [ ]         DGRAM                    548      /log
unix  2      [ ]         DGRAM                    12160    /run/systemd/shutdownd
unix  2      [ ]         DGRAM                    19454    /var/run/nscd/socket
unix  3      [ ]         STREAM     CONNECTED     95657062 

3. 使用示例

  1. 使用以下命令查看在本机上的连接

    # 列出所有连接
    sudo netstat -anp
    
    # 列出所有 tcp 连接
    sudo netstat -anpt
    
    # 列出所有 udp 使用的连接
    sudo netstat -anpu
    

    在这里插入图片描述

  2. 使用以下命令查看在本机上作为服务端进行端口监听的进程建立的连接

    # 列出所有连接
    sudo netstat -anpl
    
    # 列出所有本机上作为服务端建立的 tcp 连接
    sudo netstat -anplt
    
    # 列出本机上作为服务端监听的 udp 端口
    sudo netstat -anplu
    

    在这里插入图片描述

  3. 使用以下命令查看本机上监听端口的进程建立的 tcp 连接中包含 80 端口的连接

    sudo netstat -anplt | grep -w 80
    

    在这里插入图片描述

  4. 统计 tcp 连接的数量

    sudo netstat -ant | wc -l
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值