netstat,tcpdump命令总结

作者: 肖金光xjg | 来源:发表于2017-03-01 15:49 被阅读62次

    netstat

    netstat常用参数:
    -n 不以主机名称或者服务名称显示,而是以IP和端口号的方式展示,如同route -n, tcpdump -n与网路介面有关的参数;
    -t 仅显示tcp连接
    -u 仅显示utp连接
    -p 显示服务名字/PID的列
    -l 仅显示LISTEN状态的服务连接
    -s 显示网络统计数据
    -r 显示route table
    -a 显示所有的连接

    查看系统监听的服务及端口

    [root@c37 local]# netstat -ntpl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1440/rpcbind        
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      59054/nginx         
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      8052/sshd           
    tcp        0      0 0.0.0.0:38072               0.0.0.0:*                   LISTEN      1462/rpc.statd      
    tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      8219/sshd           
    tcp        0      0 127.0.0.1:6011              0.0.0.0:*                   LISTEN      59633/sshd          
    tcp        0      0 :::3306                     :::*                        LISTEN      59566/mysqld        
    tcp        0      0 :::111                      :::*                        LISTEN      1440/rpcbind        
    tcp        0      0 :::22                       :::*                        LISTEN      8052/sshd           
    tcp        0      0 :::45145                    :::*                        LISTEN      1462/rpc.statd      
    tcp        0      0 ::1:6010                    :::*                        LISTEN      8219/sshd           
    tcp        0      0 ::1:6011                    :::*                        LISTEN      59633/sshd  
    

    用netstat查看系统连接数

    [root@web01 ~]# netstat -n |awk '/^tcp/ {++S[$NF]} END {for(i in S) print i,S[i]}'
    TIME_WAIT 297
    FIN_WAIT1 1
    ESTABLISHED 164
    

    查看路由

    [root@c37 local]# netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    10.1.1.0        *               255.255.255.0   U         0 0          0 eth0
    link-local      *               255.255.0.0     U         0 0          0 eth0
    default         10.1.1.2        0.0.0.0         UG        0 0          0 eth0
    [root@c37 local]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    0.0.0.0         10.1.1.2        0.0.0.0         UG    0      0        0 eth0
    

    tcpdump

    tcpdump常用参数:
    -i 指定监听网络的接口
    -c 在接受指定包数目后,tcpdump就停止
    -w 直接将接收数据接入文件,不分析,不打印输出
    -n 不把网络地址转换成名字
    -t 在输出的每一行不打印时间戳
    -d 将匹配信息包的代码以人们能够理解的汇编格式给出
    -dd 将匹配信息包的代码以 c语言程序段的格式给出
    -ddd 将匹配信息包的代码以十进制的形式给出
    -v 输出一个稍微详细的信息
    -vv 输出详细的报文信息
    -p 非混合模式

    expression 由一个或多个[primitives]组成,而 [primitives]由一个或多个[qualitifer]加一个 id(name)或数字组成,它们的结构如用正则表达式则可表示为:
    expression = ([qualitifer]+(id|number))+
    依次看来,expression是一个复杂的条件表达式,其中[qualitifer]+(id|number)就是一个比较基本条件,qualitifer就表达一些的名称(项,变量),id或number则表示一个值(或常量)

    qualitifer共有三种,分别是:
    第一种是关于类型的关键字,主要包括host,net,port, 例如 host 192.168.1.2,指明 192.168.1.2是一台主机,net 202.5.0.0 指明 202.5.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

    第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 192.168.1.2 ,指明ip包中源地址是192.168.1.2 , dst net 202.5.0.0 指明目的网络地址是202.5.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

    第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

    其他重要的关键字如下:gateway, broadcast,less,greater
    三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'││'

    tcpdump实例

    截获主机为10.1.1.5的包
    tcpdump -P host 10.1.1.5
    截获主机10.1.1.5和主机10.1.1.2或者10.1.1.33的包
    tcpdump host 10.1.1.5 and ( 10.1.1.2 or 10.1.1.33)
    截获eth0网卡且目的主机为10.1.1.5,端口为80的包
    tcpdump -i eth0 port 80 and dst host 10.1.5
    截取主机10.1.1.5除了和主机10.1.1.2以外的所有ip包
    tcpdump ip host 10.1.1.5 and ! host 10.1.1.2

    相关文章

      网友评论

        本文标题:netstat,tcpdump命令总结

        本文链接:https://www.haomeiwen.com/subject/orxcgttx.html