想监控特定连线的来源或 Port,在 UNIX 中内建了不少好用的程式,组合各个小工具后更是威力无穷;Windows 在这方面虽然也有相当多类似的程式可安装,但内建的 Netstat 用起来总是有些缺憾,在 SANS 看到这篇 Fun With Windows Netstat ,提到一些小技巧,用例子讲述大家就可明了:netstat –na 1 | find “特定IP”显示特定 IP 之连线,每隔一秒更新画面一次 (适用于像是你已锁定可疑对象,但不知他何时会连过来)-a 代表列出所有连线-n 代表仅列出 IP 及 Port,不解析为 hostname 及 service name,速度会快很多netstat –nao 1 | find “特定IP”加上 -o 参数可显示触发该连线之 process ID,欲知 process name 则可以透过内建的 tasklist 这程式netstat –na 1 | find “4444″ | find “ESTABLISHED”也可以针对特定 Port,不分对象的进行监控,再透过 find “ESTABLISHED” 筛选掉仅 LISTENING 的部份netstat /?显示通讯协定统计资料和目前的 TCP/IP 网路连线。NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] -a 显示所有连线和听候连接埠。 -b 显示涉及建立每个连线或听候连接埠的执行档。在某些情况下,已知执行档可主控多个独立元件,在这些情况下,便会显示涉及建立连线或听候连接埠的元件顺序。如此,执行档名称位于底部的 [] 中,上方便是它呼叫的元件等,直到已达 TCP/IP。请注意,此选项相当耗时,而且如果您没有足够的权限,便会失败。 -e 显示 Ethernet 统计资料。这可以跟 -s 选项合并使用。 -f 显示外部地址的完整格式的网域名称 (FQDN)。 -n 以数字格式显示位址和连接埠号码。 -o 显示与每个连线相关联的拥有处理程序识别码。 -p proto 显示由 proto 指定的通讯协定连线; proto可能是下列任一个: TCP、UDP、TCPv6 或UDPv6。如果与 -s 选项搭配使用来显示每个通讯协定的统计资料,proto 可能是下列任一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。 -r 显示路由表。 -s 显示每个通讯协定的统计资料。依预设,将会显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计资料; -p 选项可以用来指定预设的子集。 -t 显示目前的连线卸载状态。 interval 重新显示选取的统计资料,每次显示之间的暂停间隔秒数。按 CTRL+C 键可以停止重新显示统计资料。如果省略,netstat 将会列印一次目前的设定资讯。下面是寻找 28021 与 开启连线中 为 TCP 协定 计算数量 累记到 1.lognetstat -na | findstr “28021″ | findstr “ESTABLISHED” | find /C “TCP” >> 1.lognetstat参数-A 显示任何关联的协议控制块的地址。主要用于调试-a 显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字-i 显示自动配置接口的状态。那些在系统初始引导后配置的接口状态不在输出之列-m 打印网络存储器的使用情况-n 打印实际地址,而不是对地址的解释或者显示主电脑,网络名之类的符号-r 打印路由选择表-f address -family对于给出名字的地址簇打印统计数字和控制块资讯。到目前为止,唯一支持的地址簇是inet-I interface 只打印给出名字的接口状态-p protocol-name 只打印给出名字的协议的统计数字和协议控制块资讯-s 打印每个协议的统计数字-t 在输出显示中用时间资讯代替队列长度资讯。 netstat命令的列标题Name 接口的名字Mtu 接口的最大传输单位Net/Dest 接口所在的网络Address 接口的IP地址Ipkts 接收到的资料包数目Ierrs 接收到时已损坏的资料包数目Opkts 送出的资料包数目Oeers 送出时已损坏的资料包数目Collisions 由这个接口所记录的网络冲突数目在 windows 下使用 netstat 指令来查询已开启的 listen port (-a), 以及已建立的连线 (active connection) 是十分方便的工具. 不过若是要知道该 connection 或 listen port 是由哪个 process 建立的, 在 netstat 指令下是无法达成的, 必须藉由另一个 sysinternals (被 ms 并入了)的 tcpview 工具.不过, 现在可以不用这么麻烦了, netstat 工具已经增加了这个功能, 指令是 (-b), 例如:netstat -nb可以找出目前建立 connection 的不解析名称(即使用ip及port number, -n)的方式, 列出对应的执行档名称及 process id (PID), 如此一来, 对于要快速追踪 active connection 及 listen port 的 process (或执行档名) 可以更快速的利用指令来取得.常用的方式如下:netstat -nanetstat -nab为什么使用 -n, 因为可以不用反查 hostname, 直接显示 ip, 速度较快啦.另外使用 -b 的功能应该是要在 windows 2003 sp2 及以上, windows xp sp3, windows vista 以上才有.less..以下为 netstat 的指令功能列表:显示通讯协定统计资料以及目前的 TCP/IP 网路连线。NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-t] [-v] [interval]-a 显示所有连线以及接听连接埠。-b 显示关于建立各连线或接听连接埠的可执行档。某些情况下是知名的可执行主机多重独立元件,在这些情况下则会显示关于建立连线或接听连接埠的元件组合。在此状况下,可执行档的名称显示于底部的 [] 中,而其呼叫的元件则显示于顶端,直到取得 TCP/IP 为止。请注意,这个选项可能需要很多时间而且可能会失败,除非您有足够的权限。-e 显示乙太网路统计资料。这可结合 -s该选项。-n 以数字形式显示位址与连接埠号。-o 显示与各连线有关之所拥有的处理程序。-p 通讯协定 显示由通讯协定所指定的通讯协定连线;通讯协定可能为下列其中一种:TCP、UDP、TCPv6 或 UDPv6。如果使用此 -s选项显示每一个通讯协定统计资料,则通讯协定可能为下列其中一种:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。-r 显示路由表。-s 显示每一个通讯协定统计资料。根据预设值,会显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计资料;此 -p 选项可用于指定预设子集。-t 显示目前的连线卸载状态。-v 与 -b 搭配使用时,将显示关于建立所有可执行档之连线或接听连接埠的元件组合。间隔 重新显示已选的统计资料,并在每次显示的间隔暂停数秒。按下 CTRL+C 以停止显示统计资料。如果省略此步,则 netstat 将列印目前的组态资讯。