netstat命令详解!_值得大家收藏!

netstat命令详解!(值得大家收藏!)


Netstat命令用于显示协议统计数据和当前TCP/IP网络的连接相关信息 。


很多时候我们需要查看自己的电脑某些网络端口是否被正常打开或者是否已经成功与别的机器建立连接,或者想看一些连接、协议的统计数据,就需要用netstat命令来查看 。


命令后面带个问号就能查看到帮助了,我的是英文系统,听说中文系统下可以查到中文的帮助,我没条件测试,所以不知道,希望知道的朋友帮我核实再告诉我 。


先来人肉翻译一下各个选项所代表的意思吧:


选项描述-a显示所有网络连接和监听的所有端口 。-b显示创建每个连接或者监听商品的相关可执行程序 。有时候有些已知的可执行程序拥有多个独立组件,在这种情况下会按一定顺序显示创建连接或者端口的组件 。netstat会将可执行程序的名称显示在底下的方括号[]中,而顶部显示的是其调用的组件,只有在TCP/IP连接上后才会继续继续下一步 。注意这种操作可能很耗时且在你没有足够权限的情况下可能会失败(笔者注:所以最好以管理员权限执行该命令) 。-e显示以太网统计数据 。这个参数往往与-s组合使用 。-f显示外部地址的FQDN名称(完全限定域名) 。-n以数字形式显示地址和端口 。-o显示每个连接相关的所属进程的ID 。-p proto显示通过proto值指定的协议的连接;proto可以是下列中的任一个:TCP、UDP、TCPv6、UDP或者UDPv6 。如果使用-s选项来显示每个协议的统计数据,proto可以是以下的任意一个:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或UDPv6 。-q显示所有的连接、监听端口及绑定非监听TCP端口 。绑定非监听端口可能有或者没有与一个活动连接相关联 。-r显示路由表 。(笔者注:跟route print命令一样的效果 。)s显示每个协议的统计数据 。默认情况下,统计数据显示如下协议:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6;-p选项可以用来指定一个上述协议的子集 。(笔者注:就是用户可以通过-p选项来指定只显示哪个的意思 。)-t显示当前连接的卸载状态 。(笔者注:卸载状态是指的TCP Chimney Offload,这是一种网络技术,它可以帮助在网络数据传输期间将工作负载从CPU传输到网络适配器 。)-x显示NetworkDirect连接、监听器和共享终端 。-y显示所有连接的TCP连接模板 。此选项不能与其它选项组合使用 。interval每次刷新显示的统计数据之间的以秒钟为单位的间隔时长 。可以按CTRL+C中止统计数据的刷新 。如果这个选项被省略,netstat只显示一次当前的配置 。

上表清楚地显示了所有参数的意义,上面的各大参数除了特别说明外,都可以组合使用,而且只需要偷懒只打一个杠,下面来举几个例:
【netstat命令详解!_值得大家收藏!】
1、最基本的,显示所有的网络连接和监听端口信息的netstat命令:




2、上面的命令有点慢,如果我们让它只以数字的形式显示地址和端口的话,就快多了,刷地一下就完了(注意命令netstat -na与netstat -n -a的意义是一样的):




3、想看是各路神仙都开了哪些端口的netstat命令:




对照上面中文的选项表,使用上应该不会有什么问题,下面附一个可能出现的名词对照吧:


英文名词中文名词Proto协议Local Address本机地址Foreign Address远程地址State状态LISTENING监听中ESTABLISHED已连接SYN_SENT发送了连接建立请求(准备建立连接)CLOSE_WAIT等待本地用户发连接中断请求中(这是准备关闭连接的一个步骤,意味着这个连接正在关闭)TIME_WAIT发了ACK进入等待状态确保远端正常关闭(这是准备关闭连接的一个步骤,意味着这个连接正在关闭)LAST_ACK等待对方回应一个ACK(这是准备关闭连接的一个步骤,意味着这个连接正在关闭)

    推荐阅读