联系管理员

开通文章发布权限

扫码 添加微信
微信图片
电话:18888888888 QQ:

Linux netstat命令实战

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

一、netstat实用参数

最全的话肯定还是通过man netstat命令输出

    root@93de58bae514:/proc/net# man netstat
     
    NETSTAT(8)                                                     Linux System Administrator's Manual                                                     NETSTAT(8)
    NAME
           netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    SYNOPSIS
           netstat  [address_family_options]  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--l2cap|-2] [--rfcomm|-f] [--listening|-l] [--all|-a]
           [--numeric|-n] [--numeric-hosts] [--numeric-ports]  [--numeric-users]  [--symbolic|-N]  [--extend|-e[--extend|-e]]  [--timers|-o]  [--program|-p]  [--ver-
           bose|-v] [--continuous|-c] [--wide|-W]
           netstat    {--route|-r}    [address_family_options]   [--extend|-e[--extend|-e]]   [--verbose|-v]   [--numeric|-n]   [--numeric-hosts]   [--numeric-ports]
           [--numeric-users] [--continuous|-c]
           netstat  {--interfaces|-i}  [--all|-a]  [--extend|-e[--extend|-e]]  [--verbose|-v]  [--program|-p]  [--numeric|-n]   [--numeric-hosts]   [--numeric-ports]
           [--numeric-users] [--continuous|-c]
           netstat {--groups|-g} [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
           netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
           netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w]
           netstat {--version|-V}
           netstat {--help|-h}

正常情况下,我们根本不需要用到这么多参数(肯定也记不住这么多参数)

所以,我们只需要记录一下这些实用的即可

参数参数说明
-a展示所有的连接和监听端口
-t显示TCP协议的连接情况
-u显示UDP协议的连接情况
-p显示建立连接的程序名和PID
-o显示与每个连接相关的所属进程
-n实用ip地址来代替主机名,-n想想禁用域名解析功能
-l只列出处于监听状态的套接字
-s展示网络统计数据,对应某个协议下的收发包数量
-r展示内核路由信息
-i展示网络接口信息

二、展示全部连接(-a)

    root@91230cc467cc:/usr/local/tomcat# netstat -a
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 localhost:8005          *:*                     LISTEN 

我们来解释下输出项

输出项输出项说明
Recv-Q在Established和Listening状态下有所不同,见下面表格
Send-Q在Established和Listening状态下有所不同,见下面表格
Local Address本地地址
Foreign Address远程连接地址
State当前套接字连接状态
套接字状态Recv-QSend-Q
Established接收队列长度(套接字缓冲还没有被应用程序取走的字节数)发送队列长度(还没有被远端主机确认的字节数)
Listeningsyn backlog(半连接队列长度)当前值syn backlog(半连接队列长度)最大值

三、只展示TCP或UDP协议连接(-t -u)

    # 只展示tcp协议的连接
    root@91230cc467cc:/usr/local/tomcat# netstat -at
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 localhost:8005          *:*                     LISTEN     
    tcp        0      0 *:8009                  *:*                     LISTEN     
    tcp        0      0 *:http-alt              *:*                     LISTEN     
     
    # 只展示UTP协议的连接
    root@91230cc467cc:/usr/local/tomcat# netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State   

四、获取进程名、进程号等信息(-p)

    root@91230cc467cc:/usr/local/tomcat                                # netstat -anp
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1/qemu-x86_64   
    tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1/qemu-x86_64   
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1/qemu-x86_64   

注意:使用-p选项时,netstat命令需要运行在root权限下,否则它不能获取运行在root用户下的进程名

五、查询进程拥有者信息(-e)

    root@91230cc467cc:/usr/local/tomcat                                 # netstat -aep
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
    tcp        0      0 localhost:8005          *:*                     LISTEN      root       2166839     1/qemu-x86_64   
    tcp        0      0 *:8009                  *:*                     LISTEN      root       2166834     1/qemu-x86_64   
    tcp        0      0 *:http-alt              *:*                     LISTEN      root       2166830     1/qemu-x86_64 

这里展示的User即当前进程所属用户

六、展示统计数据(-s)

这里打印的是网络统计数据,具体就是每个协议下的收发包数量

    root@91230cc467cc:/usr/local/tomcat                        # netstat -s
    Ip:
        7852 total packets received
        0 forwarded
        0 incoming packets discarded
        7852 incoming packets delivered
        4520 requests sent out
    Icmp:
        0 ICMP messages received
        0 input ICMP message failed.
        ICMP input histogram:
        0 ICMP messages sent
        0 ICMP messages failed
        ICMP output histogram:
    Tcp:
        9 active connections openings
        0 passive connection openings
        0 failed connection attempts
        0 connection resets received
        0 connections established
        7843 segments received
        4504 segments send out
        7 segments retransmited
        0 bad segments received.
        0 resets sent
    Udp:
        9 packets received
        0 packets to unknown port received.
        0 packet receive errors
        9 packets sent
    UdpLite:
    ...

七、网络接口信息(-ie)

    root@91230cc467cc:/usr/local/tomcat                          # netstat -ie
    Kernel Interface table
    eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:04  
              inet addr:172.17.0.4  Bcast:172.17.255.255  Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:7887 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4531 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:10944863 (10.4 MiB)  TX bytes:248425 (242.6 KiB)
     
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

与ifconfig展示的结果基本一致

八、大杀器 grep

上述都是展示各个不同类别的套接字监听状态,实际工作中,我们应该更关心某个端口号的连接信息,那就需要使用grep来完成了

    # 只展示处于LISTEN监听状态的套接字
    root@91230cc467cc:/usr/local/tomcat                # netstat -anp | grep LIS
    tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1/qemu-x86_64   
    tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1/qemu-x86_64   
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1/qemu-x86_64   
     
    # 只展示8080端口的套接字信息
    root@91230cc467cc:/usr/local/tomcat                  # netstat -anp | grep 8080
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1/qemu-x86_64  

使用grep我们任意组装我们的展示结果

总结:

综上所述,我们可以只记住一个命令即可

netstat -anp

如果还想查询,使用netstat -anp | grep xxx

相关文章

neo4j部署手册
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
DataX和DataX-WEB 安装步骤
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、 MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
K8S集群搭建手册(集群版)
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Apollo部署手册
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册