写点什么

Linux 之 netstat 命令

作者:入门小站
  • 2022 年 3 月 09 日
  • 本文字数:3541 字

    阅读完需:约 12 分钟

【Linux 常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。


netstat 命令用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat 是在内核中访问网络及相关信息的程序,它能提供 TCP 连接,TCP 和 UDP 监听,进程内存管理的相关报告。

TCP 连接状态详解

  • LISTEN: 侦听来自远方的 TCP 端口的连接请求

  • SYN-SENT: 再发送连接请求后等待匹配的连接请求

  • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认

  • ESTABLISHED: 代表一个打开的连接

  • FIN-WAIT-1: 等待远程 TCP 连接中断请求,或先前的连接中断请求的确认

  • FIN-WAIT-2: 从远程 TCP 等待连接中断请求

  • CLOSE-WAIT: 等待从本地用户发来的连接中断请求

  • CLOSING: 等待远程 TCP 对连接中断的确认

  • LAST-ACK: 等待原来的发向远程 TCP 的连接中断请求的确认

  • TIME-WAIT: 等待足够的时间以确保远程 TCP 接收到连接中断请求的确认

  • CLOSED: 没有任何连接状态

命令格式

netstat(选项)

命令选项

  • -a 或--all:显示所有连线中的 Socket;

  • -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;

  • -c 或--continuous:持续列出网络状态;

  • -C 或--cache:显示路由器配置的快取信息;

  • -e 或--extend:显示网络其他相关信息;

  • -F 或--fib:显示 FIB;

  • -g 或--groups:显示多重广播功能群组组员名单;

  • -h 或--help:在线帮助;

  • -i 或--interfaces:显示网络界面信息表单;

  • -l 或--listening:显示监控中的服务器的 Socket;

  • -M 或--masquerade:显示伪装的网络连线;

  • -n 或--numeric:直接使用 ip 地址,而不通过域名服务器;

  • -N 或--netlink 或--symbolic:显示网络硬件外围设备的符号连接名称;

  • -o 或--timers:显示计时器;

  • -p 或--programs:显示正在使用 Socket 的程序识别码和程序名称;

  • -r 或--route:显示 Routing Table;

  • -s 或--statistice:显示网络工作信息统计表;

  • -t 或--tcp:显示 TCP 传输协议的连线状况;

  • -u 或--udp:显示 UDP 传输协议的连线状况;

  • -v 或--verbose:显示指令执行过程;

  • -V 或--version:显示版本信息;

  • -w 或--raw:显示 RAW 传输协议的连线状况;

  • -x 或--unix:此参数的效果和指定"-A unix"参数相同;

  • --ip 或--inet:此参数的效果和指定"-A inet"参数相同。

列出所有端口(包含 TCP 和 UDP)

> netstat -a
复制代码


列出所有 TCP 端口

> netstat -at
复制代码


列出所有 UDP 端口

> netstat -au
复制代码


列出所有处于监听状态的 Sockets

> netstat -l
复制代码


只列出所有监听 tcp 端口

> netstat -lt
复制代码


只列出所有监听 udp 端口

> netstat -lu
复制代码


只列出所有监听 UNIX 端口

> netstat -lx
复制代码


显示所有端口的统计信息

> netstat -sIp:    1007495197 total packets received    0 forwarded    582 with unknown protocol    0 incoming packets discarded    1007422115 incoming packets deliveredIcmp:    66583265 ICMP messages received    63899 input ICMP message failed.    InCsumErrors: 384    ICMP input histogram:        destination unreachable: 115410        timeout in transit: 12840        source quenches: 11        redirects: 563        echo requests: 66453453        echo replies: 152        timestamp request: 438        address mask request: 4    66987000 ICMP messages sent    0 ICMP messages failed    ICMP output histogram:        destination unreachable: 533106        echo request: 4        echo replies: 66453453        timestamp replies: 437IcmpMsg:        InType0: 152        InType3: 115410        InType4: 11        InType5: 563
IpExt: InNoRoutes: 15 InMcastPkts: 1291307 InOctets: 211446050816 OutOctets: 481070069194
复制代码

显示 TCP 端口的统计信息

> netstat -stIcmpMsg:    InType0: 152    InType3: 115410    InType4: 11    InType5: 563    InType8: 66453492Tcp:    55437641 active connections openings    35899081 passive connection openings    552243 failed connection attempts    753118 connection resets received    7 connections establishedUdpLite:TcpExt:    162052 SYN cookies sent    621 SYN cookies received    4998179 invalid SYN cookies received    551915 resets received for embryonic SYN_RECV socketsIpExt:    InNoRoutes: 15    InMcastPkts: 1291308    InOctets: 211446303015    OutOctets: 481070459735    InMcastOctets: 46487088
复制代码

显示 UDP 端口的统计信息

> netstat -suIcmpMsg:    InType0: 152    InType3: 115410    InType4: 11    InType5: 563    InType8: 66453594    InType11: 12840    InType13: 438    InType17: 4    InType37: 3    InType165: 7    OutType0: 66453594    OutType3: 533106    OutType8: 4    OutType14: 437Udp:    17941589 packets received    637146 packets to unknown port received.    1649 packet receive errors    17977050 packets sent    0 receive buffer errors    0 send buffer errors    InCsumErrors: 1640UdpLite:IpExt:    InNoRoutes: 15    InMcastPkts: 1291310    InOctets: 211446802283    OutOctets: 481071405083    InMcastOctets: 46487160    InNoECTPkts: 1009629627    InECT1Pkts: 9955    InECT0Pkts: 1987096    InCEPkts: 94039
复制代码

在 netstat 输出中显示 PID 和进程名称

> netstat -pt
复制代码


在 netstat 输出中不显示主机,端口和用户名(host, port or user)

> netstat -an
复制代码


持续输出 netstat 信息

每隔一秒输出网络信息


> netstat -c
复制代码

显示核心路由信息

> netstat -r
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Ifacedefault gateway 0.0.0.0 UG 0 0 0 eth0link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0172.16.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
复制代码

使用 netstat -rn 显示数字格式,不查询主机名称。

> netstat -rn
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0172.16.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
复制代码

找出程序运行的端口

> netstat -tunlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4400/sshd
复制代码

找出运行在指定端口的进程

> netstat -an | grep ":80"tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTENtcp        0      0 172.16.0.9:80           185.191.171.12:9380     TIME_WAITtcp        0      0 172.16.0.9:80           185.191.171.26:52418    TIME_WAITtcp        0   3450 172.16.0.9:80           185.191.171.37:25108    FIN_WAIT1tcp        0      0 172.16.0.9:80           185.191.171.37:55096    TIME_WAITtcp        0      0 172.16.0.9:80           144.76.176.171:27832    TIME_WAITtcp        0      0 172.16.0.9:80           118.126.124.7:11127     TIME_WAITtcp        0      0 172.16.0.9:46628        169.254.0.55:8080       TIME_WAITtcp        0      0 172.16.0.9:80           144.76.176.171:23812    ESTABLISHED
复制代码

通过端口找进程 ID

> netstat -tunlp | grep 80 | awk '{print $7}' | cut -d/ -f121323
复制代码

显示网络接口列表

> netstat -i
复制代码


Kernel Interface tableIface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flgdocker0          1500        0      0      0 0             0      0      0      0 BMUeth0             1450 462305568      0      0 0      276046945      0      0      0 BMRUlo              65536  7204971      0      0 0       7204971      0      0      0 LRUvpn_abi          1500 229612389      0 1023383 0      146640133      0    956      0 BMRU
复制代码

统计 TCP 各种状态列表

> netstat -n | awk '/^tcp/{++S[$NF]}END{for(i in S) print i,S[i]}'ESTABLISHED 7FIN_WAIT2 13TIME_WAIT 18
复制代码


原文链接:https://rumenz.com/rumenbiji/linux-netstat.html微信公众号:入门小站


【Linux 常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。



发布于: 刚刚阅读数: 2
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
Linux之netstat命令_Linux_入门小站_InfoQ写作平台