查看端口状态是我们最常使用的命令,初学者不容易分辨清楚里面的内容。所以整理了一份详细的netstat命令详解。
一、netstat命令使用方法以及参数结束
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
然后详细解释一下各个参数的含义
参数 | 参数解释 | 参数 | 参数解释 |
-a | 显示所有连接和侦听端口 | -q | 显示所有连接、侦听端口和绑定的非侦听 TCP 端口。绑定的非侦听端口不一定与活动连接相关联 |
-b | 显示在创建每个连接或侦听端口时涉及的 可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行程序的名称位于底部 [] 中,它调用的组件位于顶部, 直至达到 TCP/IP。注意,此选项可能很耗时,并且在你没有足够 权限时可能失败 | -r | 显示路由表 |
-e | 显示以太网统计信息。此选项可以与 -s 选项结合使用 | -s | 显示每个协议的统计信息。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;-p 选项可用于指定默认的子网 |
-f | 显示外部地址的完全限定域名(FQDN) | -t | 显示当前连接卸载状态 |
-n | 以数字形式显示地址和端口号 | -x | 显示 NetworkDirect 连接、侦听器和共享终结点 |
-o | 显示拥有的与每个连接关联的进程 ID | -y | 显示所有连接的 TCP 连接模板。无法与其他选项结合使用 |
-p port | 显示 proto 指定的协议的连接;proto可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6 | interval | 重新显示选定的统计信息,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计信息。如果省略,则 netstat 将打印当前的配置信息一次 |
二、结果解释
先上一张图看看结果显示状态,然后再解释里面的内容
然后先解释几个大家可能看不明白的地方。
首先大家可能好奇0.0.0.0是什么鬼?
这里解释一下:
1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:135 表示本机上所有地址的135端口,这样多ip计算机就不用重复显示了。
2、TCP 0.0.0.0:80表示在所有的可用接口上监听TCP80端口
3、0.0.0.0为默认路由,即要到达不再路由表里面的网段的包都走0.0.0.0这条规则
然后127.0.0.1就是表示你本机ip地址的意思了。
然后[::]:21这又是什么鬼?
这个表示ipv6的21号端口的意思。
还有UDP的外部链接怎么都是*:*呢?
*:*是网址的通配符,就是192.168.15.12,这个类型的整体描述。
最后大家看不懂的地方可能就是状态(stat)了
LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求
SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:(Connection established.)代表一个打开的连接
FIN-WAIT-1:(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求
CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求
CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认
LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:(Connection is closed.)没有任何连接状态