SteveDevin ACM ACG CS CV Security

netstat使用

2019-05-01
SteveDevin

命令用于显示各种网络相关信息,如网络连接,路由表,接口状态,masquerade 连接,多播成员等

输出格式

jarvis@Jarvis:~$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 10.141.31.209:http      223.104.188.182:52153   ESTABLISHED
tcp        0      0 10.141.31.209:43140     10.174.231.167:5574     ESTABLISHED
tcp        0      0 10.141.31.209:http      117.136.94.169:27249    ESTABLISHED
tcp        0      0 10.141.31.209:http      223.104.190.12:51091    ESTABLISHED
tcp        0      0 10.141.31.209:http      223.104.190.12:29270    ESTABLISHED
tcp        0      0 localhost.localdo:mysql localhost.localdo:44134 ESTABLISHED
...
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    17397    /run/user/500/systemd/notify
unix  3      [ ]         DGRAM                    9700     /run/systemd/notify
unix  10     [ ]         DGRAM                    9716     /run/systemd/journal/dev-log
unix  2      [ ]         DGRAM                    9719     /run/systemd/journal/syslog

  输出结果主要分为两部分

  1. Active Internet connections, 即有源TCP连接, 其中 Recv-QSend-Q 指%0A的是接收队列和发送队列. 这些数字一般都应该是0. 如果不是则表示软件包正在队列中堆积.
  2. Active UNIX domain sockets, 称为有源Unix域套接口(用于本地的进程/线程间socket连接信息), Proto为连接使用的协议, RefCnt表示连接到本套接口上的进程号, Types显示套接口的类型(流式套接字SOCK_STREAM、数据包套接字SOCK_DGRAMSOCK_SEQPACKET和原始套接字), State显示套接口当前的状态,Path表示连接到套接口的其他进程使用的路径名.

常见参数

  1. {-a|--all} 显示所有选项, 默认不显示udp协议和State值为LISTEN信息而State值为ESTABLISHED是显示的已连接到改端口的信息
  2. {-c|--continuous} 每隔一个固定时间,执行该netstat命令。
  3. {-e|--expansion} 显示扩展信息,例如uid等
  4. {-l|--listen} 仅列出有在 Listen (监听) 的服务状态
  5. {-n|--numeric} 拒绝显示别名,能显示数字的全部转化成数字。
  6. {-p|--program} 显示建立相关链接的程序名
  7. {-r|--router} 显示路由信息,路由表
  8. {-s|--statistic} 按各个协议进行统计
  9. {-t|--tcp} 仅显示tcp相关选项
  10. {-u|--udp} 仅显示udp相关选项
  11. {-x|--unix} 仅显示unix相关选项 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

Useful

  1. {-r|--route}: Display the kernel routing tables

    jarvis@Jarvis:~$ netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    default         10.141.0.1      0.0.0.0         UG        0 0          0 eth0
    10.141.0.0      *               255.255.192.0   U         0 0          0 eth0
    
    • Destination 目的网络或主机
    • Gateway 经过网关
    • Genmask 目标网络的网络掩码
    • Flags 路由flag
      • A 被addrconf安装
      • C 缓存记录
      • D 路由表的条目是由ICMP重定向消息生成的
      • H 目标是一台主机
      • G 路由使用网关
      • M 路由表条目已被ICMP重定向消息修改
      • R 动态路由复原
      • S 此路由为手动添加
      • U 路由可用
      • W 由一个条目Clone而来
      • ! 拒绝路由
    • MSS(Maximum Segment Size) 最大分段尺寸, 也是内核所构建以通过该路由发送的数据报的最大尺寸
    • Window 系统一次从远程主机接收突发的最大量数据
    • irtt(initial round trip tim) 初始往返时间
    • Iface 网络接口名称
  2. {-g|--groups} Display multicast group membership information for IPv4 and IPv6.

    jarvis@Jarvis:~$ netstat -g
    IPv6/IPv4 Group Memberships
     Interface       RefCnt Group
     #------------------------------------------
     lo              1      all-systems.mcast.net
     eth0            1      all-systems.mcast.net
     lo              1      ip6-allnodes
     lo              1      ff01::1
     eth0            1      ip6-allnodes
     eth0            1      ff01::1
    
  3. {-i|--interfaces} Display a table of all network interfaces.

     jarvis@Jarvis:~$ netstat -i
     Kernel Interface table
     Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
     eth1      1500        0      0      0 0             0      0      0      0 BMRU
     eth2      1500        0      0      0 0             0      0      0      0 BMRU
     eth3      1500        0      0      0 0             0      0      0      0 BMRU
     lo        1500        0      0      0 0             0      0      0      0 LRU
     wifi0     1500        0      0      0 0             0      0      0      0 BMRU
    
    • Iface 网络接口名称
    • MTU(Maximum Trasmission Unit) 最大传输单元
    • RX-OK 接收时, 正确的数据包数
    • RX-ERR 接收时, 产生错误的数据包数
    • RX-DRP 接收时, 丢弃的数据包数
    • RX-OVR 接收时, 由于过速而丢失的数据包数
    • TX-OK 发送时,正确的数据包数
    • TX-ERR 发送时,产生错误的数据包数
    • TX-DRP 发送时,丢弃的数据包数
    • TX-OVR 发送时,由于过速而丢失的数据包数
    • Flg 标志
      • B 已经设置了一个广播地址
      • L 该接口是一个回送设备
      • M 接收所有数据包(混乱模式)
      • N 避免跟踪
      • O 在该接口上,禁用ARP
      • P 这是一个点到点链接
      • R 接口正在运行
      • U 接口处于“活动”状态

参考资料

  1. Linux netstat命令详解
  2. Linux学习:netstat命令
  3. Socket 的功能 和 套接字的三种类型
  4. [TCPIP] IP路由表及选路 Note
  5. “genmask”和“netmask”之间的区别
  6. netstat -i FLG含义
  7. netstat -i 和ifconfig -s的输出解释

Similar Posts

Comments