Netstat

netstat是一个基于命令行界面的網路实用工具,可显示当前的網路状态,包括传输控制协议层的连线状况、路由表、網路接口状态和網路协议的统计訊息等。netstat命令适用于类Unix系统(如macOS、Linux、Solaris和BSD)、IBM OS/2和Windows NT操作系统家族(如Windows XP、Windows Vista、Windows 7、Windows 8和Windows 10)。

netstat可用于查找網路中的问题,并可通过计算網路流量来度量網路性能。尽管该工具仍然被包含在许多Linux发行版中,但基本都被看作过时、应被替代的工具。

在Linux上,推荐使用ss替代netstat,使用ip route替代netstat -r,使用ip -s link替代netstat -i,使用ip maddr替代netstat -g。

命令参数
命令netstat的参数必须以连字符(-)而非斜杠(/)为前缀。并非所有平台都支持某些参数
! ReactOS

! macOS

! BSD

! NetBSD

! FreeBSD

! Linux

! OS/2

|-
| -a
| 显示所有活动中的网络连接和电脑正在监听的TCP/UDP端口。
|
|
|
|
|
|
|
|
|
|-
| -b
| 显示每个应用程序所使用的網路连接和监听端口 。(仅适用于Windows XP、Windows Server 2003或更高版本的Microsoft Windows操作系统,Windows 2000或更早版本不可用。)
|
|
|
|
|
|
|
|
|
|-
| -b
| 同-i,但计算網路流量的总字节数。
|
|
|
|
|
|
|
|
|
|-
| -e
| 显示以太网统计訊息,例如发送和接收的字节数及数据包数。此参数可以与-s组合使用。
|
|
|
|
|
|
|
|
|
|-
| -f
| 显示外部地址的完整网域名称。(仅适用于Windows Vista和更高版本的Microsoft Windows操作系统。)
|
|
|
|
|
|
|
|
|
|-
| -f
| 限定显示使用特定套接字(unix、inet、inet6)的地址族。
|
|
|
|
|
|
|
|
|
|-
| -g
| 显示多播组訊息。(可能仅适用于较新的操作系统。)
|
|
|
|
|
|
|
|
|
|-
| -i
| 显示網路接口及统计訊息。
|
|
|
|
|
|
|
|
|
|-
| -m
| 显示随机存取存储器统计訊息。
|
|
|
|
|
|
|
|
|
|-
| -n
| 显示活动中的TCP连接,但主机地址和端口号以数字形式表示,不会尝试确定实际主机名。
|
|
|
|
|
|
|
|
|
|-
| -o
| 显示活动中的TCP连接,并包含每个连接的进程ID()。根据PID,可在Windows任务管理器的“进程”选项卡中找到该应用程序。此参数可以与-a-n-p组合使用。如果安装了Windows修补程序,则此参数在Windows XP、Windows Server 2003和Windows 2000上可用。
|
|
|
|
|
|
|
|
|
|-
| -p
| 显示使用指定網路协议的连接。协议可以是TCP、UDP、TCPv6或UDPv6。如果此参数与-s组合使用,则协议可以是TCP、UDP、ICMP、IP、TCPv6、UDPv6、ICMPv6或IPv6。
|
|
|
|
|
|
|
|
|
|-
| -p
| 显示哪些进程正在使用哪些網路接口,类似于Microsoft Windows下的-b。(需要root权限才能执行此操作。)
|
|
|
|
|
|
|
|
|
|-
| -P
| 显示使用指定網路协议的连接。协议可以是IP、IPv6、ICMP、ICMPv6、IGMP、UDP、TCP或RawIP。
|
|
|
|
|
|
|
|
|
|-
| -r
| 显示路由表内容,与Microsoft Windows下route print命令相同。
|
|
|
|
|
|
|
|
|
|-
| -s
| 按網路协议显示统计訊息。默认情况下,显示TCP、UDP、ICMP和IP协议的统计訊息。如果Windows XP安装了IPv6协议,亦可以显示TCPv6、UDPv6、ICMPv6和IPv6协议的统计訊息。-p参数可用于指定一组协议。
|
|
|
|
|
|
|
|
|
|-
| -t
| 仅显示TCP连接。
|
|
|
|
|
|
|
|
|
|-
|-u
| 仅显示UDP连接。
|
|
|
|
|
|
|
|
|
|-
| -W
| 显示完整主机名或IPv6地址。
|
|
|
|
|
|
|
|
|
|-
| -v
| 与-b组合使用时,将显示所有应用程序使用的网络连接和监听端口所涉及的组件列表。
|
|
|
|
|
|
|
|
|
|-
| -h
| 显示该命令的提示。
|
|
|
|
|
|
|
|
|
|-
| -?
| 显示该命令的提示。
|
|
|
|
|
|
|
|
|
|-
| /?
| 显示该命令的提示。
|
|
|
|
|
|
|
|
|
|}

统计訊息
*:網路协议,包括传输控制协议()和用户数据报协议()。
:本地计算机的IP地址和正在使用的端口号。除非使用-n参数,否则将显示与IP地址和端口对应的主机名称。如果主机正在侦听所有端口,则主机名显示为星号()。如果端口尚未建立,则端口号显示为星号。
:远程计算机的IP地址和正在使用的端口号。除非指定了-n参数,否则将显示与IP地址和端口对应的主机名称。如果端口尚未建立,则端口号显示为星号()。
*:TCP连接的状态,可能的状态包括、、、、、、、、和。

命令范例
运行]]
要仅显示TCP或UDP协议的统计訊息,请键入以下命令之一:
netstat -sp tcp

netstat -sp udp

类Unix系统:
:显示进程ID为“pid”的进程打开的所有端口:
netstat -aop | grep "pid"

:持续更新活动中的TCP和UDP连接,但主机地址和端口号以数字形式表示,并显示哪些进程正在使用这些连接:
sudo netstat -nutpacw

Microsoft Windows。

例如:

....Local Address Foreign Address State
... :smtp :* LISTEN

在输出结果中,:smtp表示该进程正在本地计算机的所有網路接口上监听所有映射为SMTP的端口,此处的星号有时会被代替,意义不改变。:*中的第一个星号表示连接可以来自任何IP地址,第二个星号表示连接可以来自远程计算机上的任何端口。

参考文献
外部链接
*
*
*

评论 (0)

  • 还没有评论,来抢沙发吧。