Linux基础命令---netstat

简介: netstat      netstat指令可以显示当前的网络连接、路由表、接口统计信息、伪装连接和多播成员资格等信息。      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
netstat
      netstat指令可以显示当前的网络连接、路由表、接口统计信息、伪装连接和多播成员资格等信息。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      netstat  [address_family_options]  [--tcp|-t]  [--udp|-u]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]  [--numeric-ports]  [--symbolic|-N]  [--extend|-e[--extend|-e]]  [--timers|-o]  [--program|-p]   [--verbose|-v]  [--continuous|-c]   [delay]
      netstat  {--route|-r}  [address_family_options]  [--extend|-e[--extend|-e]]  [--verbose|-v]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]  [--numeric-ports]  [--continuous|-c] [delay]
      netstat  {--interfaces|-I|-i}  [iface]  [--all|-a]  [--extend|-e]  [--verbose|-v]  [--program|-p]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]  [--numeric-ports]  [--continuous|-c]  [delay]
      netstat  {--groups|-g}  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]  [--numeric-ports]   [--continuous|-c]   [delay]
      netstat  {--masquerade|-M}  [--extend|-e]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]  [--numeric-ports]  [--continuous|-c] [delay]
      netstat  {--statistics|-s}  [--tcp|-t]  [--udp|-u]  [--raw|-w]  [delay]
      netstat  {--version|-V}
      netstat {--help|-h}

      address_family_options:
      [--protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,  ...  }]  [--unix|-x]  [--inet|--ip]  [--ax25]  [--ipx]  [--netrom]  [--ddp]

2、选项列表
      --help
            显示帮助信息
      --version
            显示版本信息
      -v | --verbose
            显示执行过程
      -n | --numeric
            直接显示数字ip
      --numeric-hosts
            显示主机的数字地址,不影响端口和用户名
      --numeric-ports
            显示端口,不影响主机和用户名
      --numeric-users
            显示用户id,不影响主机和端口
      -A | --protocol
            指定网络类型
      -c | --continuous
            持续显示
      -e | --extend
            显示其他附加信息
      -o | --timers
            显示计时器
      -p | --program
            显示正在使用的socket程序pid和名字
      -l | --listen
            只显示监听的socket信息
      -a | -all
            显示所有连接中的socket信息
      -F
            显示FIB
      -C
            显示路由的缓存
      -Z | --context
            如果打开了SELinux,那么就打印SELinux的上下文
      -T | --notrim
            停止修剪长地址

3、说明
      netstat打印有关Linux网络子系统的信息。打印的信息类型由第一个参数控制
      (none)
            默认情况下,netstat显示打开的套接字列表。如果不指定任何地址族,则将打印所有已配置地址家族的活动套接字。
      -r | --route
            打印内核路由表
      -g | --groups
            显示IPv4和IPv6的多播组成员信息
      -i| --interfaces=iface , -I=iface
            显示所有网络接口的表,或指定的ifaces。
      -M | --masquerade
            显示假连接列表。
      -s | --statistics
            显示每个协议的汇总统计信息。

4、输出
      Active Internet connections(TCP, UDP, raw),说明
      Proto,socket使用的协议,tcp, udp, raw。
      Recv-Q,连接到此套接字的用户程序未复制的字节数。
      Send-Q,远程主机未确认的字节数。
      Local Address,套接字的本地端的地址和端口号。除非指定了“--numeric (-n)“选项,否则套接字地址将解析为其规范主机名(FQDN),端口号将被转换为相应的服务名称。
      Foreign Address,套接字的远程端的地址和端口号。类似于“本地地址”。
      State,socket的状态。由于在原始模式中没有状态,通常在UDP中也没有使用状态,因此这一列可以保留为空白。通常,这可以是几个值之一:            
            ESTABLISHED,套接字有一个已建立的连接。
            SYN_SENT,套接字正在积极尝试建立连接。
            SYN_RECV,已从网络接收到连接请求。
            FIN_WAIT1,套接字关闭,连接正在关闭。
            FIN_WAIT2,连接被关闭,套接字正在等待来自远程端的关闭。
            TIME_WAIT,套接字在关闭后等待处理仍在网络中的数据包。
            CLOSED,没有使用套接字。
            CLOSE_WAIT,远程终端已关闭,等待套接字关闭。
            LAST_ACK,远程终端已关闭,套接字已关闭。等待确认
            LISTEN,套接字正在监听传入的连接。除非您指定“--listening”或“--all(-a)”选项,否则输出中不包含此类套接字。
            CLOSING,两个套接字都已关闭,但我们仍然没有发送所有数据。
            UNKNOWN,套接字的状态未知。
      User
      PID/Program name
      Timer

      Active UNIX domain Sockets,说明
      Proto,套接字使用的协议(通常是Unix)。
      RefCnt,参考计数(即通过这个套接字附加的进程)。
      Flags,所显示的标志是SO_ACCEPTON (显示为ACC)、SO_WAITDATA(W)或SO_NOSPACE(N)。如果未连接套接字的相应进程正在等待连接请求,则在未连接套接字上使用SO_ACCECPTON。其他的标志不正常。
      Type可能的几种值:
            SOCK_DGRAM,套接字以数据报(无连接)模式使用。
            SOCK_STREAM,这是一个流(连接)套接字。
            SOCK_RAW,套接字用作原始套接字。
            SOCK_RDM,这个服务提供可靠传递的消息。
            SOCK_SEQPACKET,这是一个顺序的数据包套接字。
            SOCK_PACKET,原始接口访问套接字。
            UNKNOWN,不知道的状态
      State
            FREE,套接字还没有分配
            LISTENING,套接字正在监听请求。
            CONNECTING,套接字正在尝试连接。
            CONNECTED,套接字已经连接。
            DISCONNECTING,套接字断开连接。
            (empty),套接字没有连接到其他地方。
            UNKNOWN,未知的状态
      PID/Program name,打开套接字的进程ID(PID)和进程名。更多信息可在上面写的活动互联网连接部分获得。
      Path,这是连接到套接字上的相应进程的路径名。

5、文件
      /etc/services,服务翻译文件
      /proc,proc文件系统的挂载点,它允许访问内核状态。
      /proc/net/dev,设备信息。
      /proc/net/raw,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,静态。


6、实例
1)显示指定类型的网络信息
      [root@localhost ~]#  netstat -A inet             //指定网络类型inet
      Active Internet connections (w/o servers)
      Proto Recv-Q Send-Q Local Address               Foreign Address             State      
      udp        0      0 192.168.0.113:33423         192.168.0.1:domain          ESTABLISHED 
      udp        0      0 192.168.0.113:40242         192.168.1.1:domain          ESTABLISHED 
      udp        0      0 192.168.0.113:50786         192.168.0.1:domain          ESTABLISHED 
2)显示路由表
      [root@localhost ~]#  netstat –r                 //显示路由表
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
      255.255.255.255 -               255.255.255.255 !H        - -          - -
      192.168.1.0     *               255.255.255.0   U         0 0          0 eth0
      224.0.0.0       -               255.255.255.0   !         - -          - -
      default         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
3)显示网卡状态
      [root@localhost ~]#  netstat –i                    //显示网卡状态
      Kernel Interface table
      Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
      eth0       1500   0   121817      0      0      0    79998      0      0      0 BMRU
      lo        16436   0     8374      0      0      0     8374      0      0      0 LRU
相关文章
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
316 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1063 6
|
3月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
175 3
|
3月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
133 2
|
11天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
26 11
|
2月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
95 14
Linux 10 个“who”命令示例
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
183 20
|
2月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
113 8
|
2月前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
111 7
|
3月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
57 9