Netstat用于显示计算机或系统中的活动TCP连接和相关侦听端口。实际上,它提供了更多的特性 netstat
例如显示有关网络堆栈协议、IPv4、IPv6、TCP、UDP等的统计信息。
netstat命令语法
netstat命令的语法如下所示。我们可以简单地使用以下选项。
netstat OPTIONS
- 选项将设置有关netstat命令行为的不同选项和参数。
显示所有具有侦听端口的TCP和UDP连接
TCP是在不同主机之间传输数据包最常用的协议。在主机的常规使用中,在不同的阶段会有很多TCP连接。我们可以用 -a
选项如下。
> netstat -a

我们可以看到,在列出侦听端口时,提供了有关这些端口的以下信息。
-
Proto
侦听端口正在运行的协议。通常使用TCP和UDP。 -
Local Address
是本地或当前系统IP地址和端口号。IP地址和端口号由:
.0.0.0.0
指所有本地IP地址或网络接口,其中127.0.0.1
仅表示本地主机或当前系统。 -
Foreign Address
是启动连接的远程IP地址。与本地地址一样,IP地址和端口号用:
. -
State
将提供给定端口的当前状态。端口可以监听,这意味着接受连接或CLOSED
最近关闭等。有关端口或TCP状态的更多详细信息可在下面找到。
netstat命令的TCP状态
众所周知,TCP协议提供了主机间可靠的数据传输。TCP实现会话以提供这种可靠性。TCP会话自始至终都有不同的状态。这里是TCP状态的顺序和意义。
-
LISTENING
表示端口正在侦听,但与远程主机没有任何连接 -
ESTABLISHED
与远程主机建立并通信的连接 -
TIME_WAIT
连接处于等待状态 -
CLOSE_WAIT
连接处于闭合阶段 -
CLOSED
连接已关闭 -
SYN_RECEIVED
这个sync
接收到启动连接的标志
相关文章: 如何在Linux和Windows下使用Nslookup直接和反向Ip查找?
显示以太网统计信息
以太网或MAC通常用于相同的含义。以太网是一种第2层协议,用于在局域网中与其他主机通信,主要是与用于访问其他网络或互联网的网关通信。我们可以列出有关以太网协议的详细信息。我们将使用 -e
选项列出以太网统计信息。
> netstat -e

将提供以下有关以太网统计信息。
-
Received
列用于指定接收的大小。 -
Sent
列用于指定发送的大小。 -
Bytes
用于成功完成的传输。 -
Unicast packets
通常与没有连接和会话管理的UDP协议相关。 -
Non-unicast
-
Discards
是因为问题而丢弃的数据包。 -
Errors
显示发生错误的数据包的大小。 -
Unknown protocols
显示TCP/IP堆栈当前未知的协议。
显示端口和主机名的数字表示形式
主机和端口通常有数字和文本表示。 netstat
命令在默认情况下尝试将主机名和端口名解析为文本格式。如果我们需要获得主机和端口的数字信息,如IP地址和端口号,我们可以使用 -n
选项。
> netstat -n

显示连接或端口进程ID
所有端口和连接都由操作系统中的进程打开和管理。例如,Apache是一个web服务器,使用tcp80侦听HTTP请求。我们可以列出给定连接或端口的进程id -o
选项。
> netstat -o

我们也可以看到 PID
或 Process ID
它是侦听给定端口和接口的当前应用程序进程ID。
显示连接或端口进程名称
与上一个示例一样,我们可以列出已建立的连接或侦听端口进程名称 -b
选项。但此选项需要管理员权限。
> netstat -b

我们可以从输出中看出 chrome.exe.
通过与远程主机建立连接 https
协议。
相关文章: 如何在Linux下用Netstat检查和列出监听端口
显示完全限定域名
正常情况下 netstat
将以简单的方式和快速的方式列出主机名。它也可以跳过一些域名。我们可以为 netstat
打印完全限定的域名 -f
选项。
> netstat -f

我们可以看到,只有解析的DNS名称或完全限定的域名显示为 oracle.com
.
仅显示TCP协议
netstat
命令根据协议提供了广泛的筛选选项。我们可以提供一个过滤器选项 -p
和协议名称。在本例中,我们将过滤并仅显示TCP协议。
> netstat -p tcp

正如我们所看到的,没有UDP协议相关的端口和连接信息。
仅显示UDP协议
我们也可以过滤和显示只有UDP协议端口 -p udp
选项。我们提供了 -a
也要列出UDP。
> netstat -p udp -a

正如我们可以看到的,在这个例子中没有与TCP相关的端口或连接信息,并且所有UDP端口当前都处于侦听模式,没有连接状态。这是因为UDP协议是一种无连接的协议,它不会为数据传输创建会话。
仅显示IPv4端口和套接字
我们可以用 -p ip
选项只过滤和显示IPv4连接。这通常很有用,因为IPv6协议并不常见。
> netstat -p ip
仅显示IPv6端口和套接字
我们可以用 -p ipv6
选项筛选并仅显示有关netstat命令的IPv6连接。
> netstat -p ipv6
显示IPv4和IPv6统计信息
netstat
命令提供了有关网络堆栈的大量统计信息。这些统计数据提供了有关协议的详细度量。我们可以列出这些统计信息 -s
选项。
> netstat -s

我们可以看到,提供了以下关于IPv4和IPv6协议的信息。
-
Packets Received
:接收的IP数据包总数。 -
Received Header Errors
:已接收数据包的标头错误总数。 -
Received Address Errors
:已接收数据包的地址错误总数。 -
Unknown Protocols Received
:未知的协议总数。 -
Received Packets Discarded
:接收后丢弃的数据包总数。
相关文章: 路由器和调制解调器有什么不同,有什么相同?
仅显示TCP协议统计信息
我们只能列出与TCP协议相关的统计信息 -s -p tcp
选项。
> netstat -s -p tcp

我们可以从输出中看到以下信息
-
Active Opens
将列出当前打开的连接计数。在这个例子中,这是104。 - 一
Passive Opens
将列出打开的连接,但最近未传输任何数据。在这个例子中,这是15。 -
Failed Connection Attempts
将列出连接尝试或未完成的尝试,因此没有4个已启动的连接。 -
Reset Connections
将列出以结束的连接RST
TCP标志。 -
Current Connections
将列出当前打开的连接计数,在本例中为5。 -
Segments Received
将列出接收到的TCP段的计数。 -
Segments Sent
将列出已发送TCP段的计数。 -
Segments Retransmitted
将列出重新传输的TCP段的计数。
仅显示ICMP协议统计信息
我们只能列出与ICMP相关的统计信息 -s -p icmp
选项。
> netstat -s -p icmp

-
Messages
:ICMP消息。 -
Errors
:ICMP错误。 -
Destination Unreachable
:ICMP目标无法到达的消息。 -
Echo Replies
:通常用于ping或ping命令的ICMP Echo应答。
显示路由表
路由是用来设置IP包的第一跳根据其目的地。我们的系统路线信息可以用 -r
选项。
> netstat -r

正如我们所看到的,默认路由打印在IP地址所在的第一行 192.168.122.1
.
交互显示信息
如果我们需要以交互方式列出给定的选项输出以监视度量,我们可以使用交互模式。通过向打印输出提供间隔值来启用交互模式。此功能不需要任何选项,我们只提供 2
在这种情况下。
> netstat -s -p tcp 2