netstat命令详解

Netstat命令用于显示协议统计数据和当前TCP/IP网络的连接相关信息。
很多时候我们需要查看自己的电脑某些网络端口是否被正常打开或者是否已经成功与别的机器建立连接,或者想看一些连接、协议的统计数据,就需要用netstat命令来查看。
命令后面带个问号就能查看到帮助了,我的是英文系统,听说中文系统下可以查到中文的帮助,我没条件测试,所以不知道,希望知道的朋友帮我核实再告诉我。

C:\>netstat ?

Displays protocol statistics and current TCP/IP network connections.

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]

  -a            Displays all connections and listening ports.
  -b            Displays the executable involved in creating each connection or
                listening port. In some cases well-known executables host
                multiple independent components, and in these cases the
                sequence of components involved in creating the connection
                or listening port is displayed. In this case the executable
                name is in [] at the bottom, on top is the component it called,
                and so forth until TCP/IP was reached. Note that this option
                can be time-consuming and will fail unless you have sufficient
                permissions.
  -e            Displays Ethernet statistics. This may be combined with the -s
                option.
  -f            Displays Fully Qualified Domain Names (FQDN) for foreign
                addresses.
  -n            Displays addresses and port numbers in numerical form.
  -o            Displays the owning process ID associated with each connection.
  -p proto      Shows connections for the protocol specified by proto; proto
                may be any of: TCP, UDP, TCPv6, or UDPv6.  If used with the -s
                option to display per-protocol statistics, proto may be any of:
                IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, or UDPv6.
  -q            Displays all connections, listening ports, and bound
                nonlistening TCP ports. Bound nonlistening ports may or may not
                be associated with an active connection.
  -r            Displays the routing table.
  -s            Displays per-protocol statistics.  By default, statistics are
                shown for IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, and UDPv6;
                the -p option may be used to specify a subset of the default.
  -t            Displays the current connection offload state.
  -x            Displays NetworkDirect connections, listeners, and shared
                endpoints.
  -y            Displays the TCP connection template for all connections.
                Cannot be combined with the other options.
  interval      Redisplays selected statistics, pausing interval seconds
                between each display.  Press CTRL+C to stop redisplaying
                statistics.  If omitted, netstat will print the current
                configuration information once.

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

选项 描述
-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只显示一次当前的配置。

上表清楚地显示了所有参数的意义,上面的各大参数除了特别说明外,都可以组合使用,而且只需要偷懒只打一个杠,下面来举几个例:

  1. 最基本的了,显示所有的网络连接和监听端口信息:
C:\>netstat -a

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            DARWINWS01:0              LISTENING
  TCP    0.0.0.0:445            DARWINWS01:0              LISTENING
  TCP    0.0.0.0:2179           DARWINWS01:0              LISTENING
  TCP    0.0.0.0:3389           DARWINWS01:0              LISTENING
  TCP    0.0.0.0:5040           DARWINWS01:0              LISTENING
  TCP    0.0.0.0:5900           DARWINWS01:0              LISTENING
  TCP    0.0.0.0:6045           DARWINWS01:0              LISTENING
  1. 上面的命令有点慢,如果我们让它只以数字的形式显示地址和端口的话,就快多了,刷地一下就完了(注意命令netstat -na与netstat -n -a的意义是一样的):
C:\>netstat -na

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:2179           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5900           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:6045           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:6772           0.0.0.0:0              LISTENING
  1. 想看是各路神仙都开了哪些端口:
C:\>netstat -n -b

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    127.0.0.1:5354         127.0.0.1:49670        ESTABLISHED
 [mDNSResponder.exe]
  TCP    127.0.0.1:5354         127.0.0.1:49672        ESTABLISHED
 [mDNSResponder.exe]
  TCP    127.0.0.1:5354         127.0.0.1:49680        ESTABLISHED
 [mDNSResponder.exe]
  TCP    127.0.0.1:7330         127.0.0.1:59371        ESTABLISHED
 [iVMS-4200.DeviceManagement.S.exe]
  TCP    127.0.0.1:27015        127.0.0.1:59257        ESTABLISHED
 [AppleMobileDeviceService.exe]
  TCP    127.0.0.1:49670        127.0.0.1:5354         ESTABLISHED
 [AppleMobileDeviceService.exe]
  TCP    127.0.0.1:49672        127.0.0.1:5354         ESTABLISHED
 [AppleMobileDeviceService.exe]
  TCP    127.0.0.1:49680        127.0.0.1:5354         ESTABLISHED
 [vncserver.exe]
  TCP    127.0.0.1:50395        127.0.0.1:50396        ESTABLISHED
 [firefox.exe]
  TCP    127.0.0.1:50396        127.0.0.1:50395        ESTABLISHED
 [firefox.exe]
  TCP    127.0.0.1:50397        127.0.0.1:50398        ESTABLISHED

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

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

达叔傻乐(darwin.zuo@163.com)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容

  • netstat命令用来打印Linux网络系统的状态信息。 语法:netstat (选项) 选项: ●-a或--al...
    啾咪啾啾酱阅读 3,604评论 0 4
  • 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Stati...
    hades2013阅读 417评论 0 1
  • 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Stati...
    流川枫丶阅读 1,479评论 0 1
  • netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设...
    gurlan阅读 419评论 0 0
  • 摆脱“穷人思维”,以下给大家几点建议: 1、 建立“时间价值”的概念,减少做那些“时间花得多收益少”的事情; 2、...
    英会阅读 249评论 0 1