zoukankan      html  css  js  c++  java
  • netstat命令

    netstat命令

    netstat命令显示各种网络相关信息,例如网络连接、路由表、接口统计信息、伪装连接、多播成员身份等。

    语法

    netstat [address_family_options] [--tcp|-t] [--udp|-u] [--raw|-w] 
            [--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts] 
            [--numeric-ports] [--numeric-users] [--symbolic|-N] 
            [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] 
            [--verbose|-v] [--continuous|-c]
    
    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] [--raw|-w]
    
    netstat {--version|-V}
    
    netstat {--help|-h}
    
    address_family_options may be any combination of the following options: 
    [-4] [-6] [--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]] [--unix|-x] 
    [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]
    

    参数

    netstat打印的信息类型由第一个参数控制,该参数是以下参数之一:

    • (none): 默认情况下,netstat显示打开的套接字列表,如果未指定任何地址族,则将打印所有已配置地址族的活动套接字。
    • --route, -r: 显示内核路由表,netstat -rroute -e产生相同的输出。
    • --groups, -g: 显示IPv4IPv6的多播组成员身份信息。
    • --interfaces, -i: 显示所有网络接口的表。
    • --masquerade, -M: 显示伪装的连接列表。
    • --statistics, -s: 显示每个协议的摘要统计信息。

    在第一个参数之后,以下选项指定netstat的报告行为:

    • --verbose, -v: 通过详细操作告诉用户发生了什么,特别是打印一些有关未配置地址族的有用信息。
    • --wide, -W: 使用指定宽度而不根据使用输出来截断IP地址,为了不破坏现有的脚本,这是可选的。
    • --numeric, -n: 显示数字地址,而不是尝试确定符号主机、端口或用户名。
    • --numeric-hosts: 显示数字主机地址,但不影响端口或用户名的解析。
    • --numeric-ports: 显示数字端口号,但不影响主机名或用户名的解析。
    • --numeric-users: 显示数字用户id,但不影响主机名或端口名的解析。
    • --protocol=family, -A: 指定要显示其连接的地址族(低级协议),该族是逗号分隔的地址族关键字列表,如inetunixipxax25netromddp,这与使用--inet-unix(-x)-ipx-ax25-netrom--ddp选项具有相同的效果,地址族inet包括rawudptcp协议套接字。
    • -c, --continuous: 使netstat每秒连续打印所选信息。
    • -e, --extend: 显示附加信息,使用此选项两次以获得最大细节。
    • -o, --timers: 包括与网络计时器相关的信息。
    • -p, --program: 显示PID进程标识符和每个套接字所属的程序的名称。
    • -l, --listening: 只显示监听套接字,这些在默认情况下被省略。
    • -a, --all: 显示监听和非监听套接字,使用--interfaces选项显示未启动的接口。
    • -F: 从FIB打印路由信息,这是默认设置。
    • -C: 从路由缓存中打印路由信息。

    网络连接

    关于活跃的互联网连接TCPUDPraw的信息属于以下类别:

    • Proto: 套接字使用的协议tcpudpraw
    • Recv-Q: 连接到此套接字的用户程序未复制的字节数。
    • Send-Q: 远程主机未确认的字节数。
    • Local Address: 套接字本地端的地址和端口号,除非指定了--numeric, -n选项,否则套接字地址将解析为其规范的主机名FQDN,并且端口号将转换为相应的服务名。
    • Foreign Address: 套接字远端的地址和端口号,类似于本地地址。
    • State: socket的状态,由于在原始套接字raw模式中没有状态,而且UDP中通常没有使用状态,因此这一列可以留空,通常这可以是以下值之一,TCP握手与挥手的过程中通常会经历这些状态。
      • ESTABLISHED: 套接字已建立连接。
      • SYN_SENT: 套接字正在积极尝试建立连接。
      • SYN_RECV: 从网络接收到连接请求。
      • FIN_WAIT1: 套接字已关闭,连接正在关闭。
      • FIN_WAIT2: 连接已关闭,套接字正在等待从远端关闭。
      • TIME_WAIT: 套接字在关闭后正在等待处理仍在网络中的数据包。
      • CLOSE: 没有使用该套接字。
      • CLOSE_WAIT: 远端已关闭,等待套接字关闭。
      • LAST_ACK: 远端已经关闭,套接字已关闭,等待确认。
      • LISTEN: 套接字正在监听传入的连接,除非指定--listening, -l--all, -a选项,否则此类套接字不包含在输出中。
      • CLOSING: 两个套接字都关闭了,但我们仍然没有发送所有的数据。
      • UNKNOWN: 套接字的状态未知。
    • User: 套接字所有者的用户名或用户ID(UID)
    • PID/Program name: 进程ID(PID)和拥有套接字的进程的进程名称之间用斜杠分隔,--program使该列包括在内,需要超级用户特权才能在不拥有的套接字上查看此信息,此标识信息尚不适用于IPX套接字。

    UNIX域套接字

    有关活动UNIX域套接字的信息属于以下类别:

    • Proto: 套接字使用的协议,通常是unix
    • RefCnt: 引用计数,即通过此套接字连接的进程。
    • Flags: 显示的标志是SO_ACCEPTON显示为ACCSO_WAITDATA(W)SO_NOSPACE(N),如果未连接的套接字的相应进程正在等待连接请求,则在未连接的套接字上使用SO_ACCECPTON,其他标志不是正常的关注点。
    • Type: 套接字访问有几种类型:
      • SOCK_DGRAM: 套接字用于数据报(无连接)模式。
      • SOCK_STREAM: 这是一个流(连接)套接字。
      • SOCK_RAW: 该套接字用作原始套接字。
      • SOCK_RDM: 这个服务提供可靠的消息传递。
      • SOCK_SEQPACKET: 这是一个顺序数据包套接字。
      • SOCK_PACKET: 原始接口访问套接字。
    • State: 该字段将包含以下关键字之一:
      • FREE: 未分配套接字。
      • LISTENING:套接字正在监听连接请求,仅当指定--listening, -l--all, -a选项时,此类套接字才会包含在输出中。
      • CONNECTING: 套接字即将建立连接。
      • CONNECTED: 套接字已连接。
      • DISCONNECTING: 套接字正在断开连接。
      • (empty): 该套接字未连接到另一套接字。
    • PID/Program name:打开套接字的进程的进程ID(PID)和进程名称。
    • Path: 这是相应进程附加到套接字的路径名。
    • Active IPX sockets: 活动IPX套接字的列表。
    • Active NET/ROM sockets: 活动NET/ROM套接字的列表。
    • Active AX.25 sockets: 活动AX.25套接字的列表。

    文件

    netstat使用以下文件:

    • /etc/services: 服务转换文件。
    • /proc: proc文件系统的挂载点,它以文件层次结构的形式提供对内核状态信息的访问。
    • /proc/net/dev: 设备信息文件。
    • /proc/net/raw: 原始套接字信息。
    • /proc/net/tcp: TCP套接字信息。
    • /proc/net/udp: UDP套接字信息。
    • /proc/net/igmp: IGMP多播信息。
    • /proc/net/unix: Unix域套接字信息。
    • /proc/net/ipx: IPX套接字信息。
    • /proc/net/ax25: AX25套接字信息。
    • /proc/net/appletalk: DDP(appletalk)套接字信息。
    • /proc/net/nr: NET/ROM套接字信息。
    • /proc/net/route: IP路由信息。
    • /proc/net/ax25_route: AX25路由信息。
    • /proc/net/ipx_route: IPX路由信息。
    • /proc/net/nr_nodes: NET/ROM节点列表。
    • /proc/net/nr_neigh: NET/ROM邻居。
    • /proc/net/ip_masquerade: 伪装的连接。
    • /proc/net/snmp: 统计。

    示例

    显示所有listeningnon-listening的套接字,并使用管道和less便于查看当前状态。

    netstat -a | less
    

    列出所有TCP端口。

    netstat -at
    

    列出所有udp端口。

    netstat -au
    

    仅列出侦听端口。

    netstat -l
    

    列出所有端口的统计信息。

    netstat -s | less
    

    显示使用TCPPID和程序名。

    netstat -pt
    

    获取内核路由信息。

    netstat -r
    

    获取与ssh相关的进程的网络信息。

    netstat -ap | grep ssh
    

    获取80端口的网路状态信息。

    netstat -anp |grep :80
    

    获取网络接口列表。

    netstat -i
    

    获取网络接口列表与拓展信息。

    netstat -ie
    

    配合awk命令获取TCP套接字的状态统计信息。

    netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'
    

    每日一题

    https://github.com/WindrunnerMax/EveryDay
    

    参考

    https://www.computerhope.com/unix/unetstat.htm
    https://www.runoob.com/linux/linux-comm-netstat.html
    https://www.geeksforgeeks.org/netstat-command-linux/
    
  • 相关阅读:
    离开页面时提示用户
    返回顶部
    【转】 MySQL主从(Master-Slave)复制
    判断是否到达指定时间,可以精确到秒
    【转】tomcat优化-有改protocol 和 缓存 集群方案
    【转】Spring+Websocket实现消息的推送
    【转】SpringMVC整合websocket实现消息推送及触发
    【转】java即时消息推送
    大型网站对图片的下载,存放,及压缩管理
    简单的linux压力测试工具webbench
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/14398069.html
Copyright © 2011-2022 走看看