目录

  • 1 概述
  • 2 netstat 命令详解
    • 2.1 Windows下该命令的参数
    • 2.2 Linux下该命令的参数
  • 2 应用
    • 2.1 查看端口开启情况来判断是否有异常通信
    • 2.2 寻找特定端口情况
    • 待续……

1 概述

本节主要是对比netstat命令在Windows和Linux系统下的不同参数,同时列举其在不同情境下的用法进行比较。

2 netstat 命令详解

2.1 Windows下该命令的参数

  1. 在windows中,执行netstat命令可以使用以下参数,先使用netstat -h来查看帮助文件。
  2. 语法:NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
C:\Users>netstat -h
-a			显示所有连接和侦听端口。
-b          显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的
			组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行程序的名称位于
			底部 [] 中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在你没有足够
			权限时可能失败。
-e          显示以太网统计信息。此选项可以与 -s 选项结合使用。
-f          显示外部地址的完全限定域名(FQDN)。
-n          以数字形式显示地址和端口号
-o          显示拥有的与每个连接关联的进程 ID。
-p proto    显示 proto 指定的协议的连接;proto可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。
			如果与 -s 选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q          显示所有连接、侦听端口和绑定的非侦听 TCP 端口。绑定的非侦听端口不一定与活动连接相关联。
-r          显示路由表。
-s          显示每个协议的统计信息。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;-p 选项可用于指定默认的子网。                                                                             -t          显示当前连接卸载状态。                                                                                    -x          显示 NetworkDirect 连接、侦听器和共享终结点。                                                                                                  -y          显示所有连接的 TCP 连接模板。无法与其他选项结合使用。                                                                                  interval    重新显示选定的统计信息,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计信息。
			如果省略,则 netstat 将打印当前的配置信息一次。                  

2.2 Linux下该命令的参数

  1. 在Linux中,执行netstat命令可以使用以下参数,先使用netstat -h来查看帮助文件。
  2. 语法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
netstat -h                            

-a, --all					显示所有连线中的Socket。
-A<网络类型>或--<网络类型>	列出该网络类型连线中的相关地址。
-c或--continuous			持续列出网络状态。
-C或--cache					显示路由器配置的快取信息。
-e或--extend				显示网络其他相关信息。
-F或--fib					显示路由缓存。
-g或--groups				显示多重广播功能群组组员名单。
-h或--help					在线帮助。
-i或--interfaces			显示网络界面信息表单。
-l或--listening				显示监控中的服务器的Socket。
-M或--masquerade			显示伪装的网络连线。
-n或--numeric				直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic	显示网络硬件外围设备的符号连接名称。
-o或--timers				显示计时器。
-p或--programs				显示正在使用Socket的程序识别码和程序名称。
-r或--route					显示Routing Table。
-s或--statistics			显示网络工作信息统计表。
-t或--tcp					显示TCP传输协议的连线状况。
-u或--udp					显示UDP传输协议的连线状况。
-v或--verbose				显示指令执行过程。
-V或--version				显示版本信息。
-w或--raw					显示RAW传输协议的连线状况。
-x或--unix					此参数的效果和指定"-A unix"参数相同。
--ip或--inet				此参数的效果和指定"-A inet"参数相同。

2 应用

2.1 查看端口开启情况来判断是否有异常通信

  1. 在Windows系统下,使用命令netstat -nbo可以查看到到本机开启的端口、所连接的端口、连接状态、进程ID及所连接的应用。
  2. 在Linux系统下,使用命令netstat -antpl,可以查询到tcp端口对应的连接,显示内容包括本地端口、连接端口、连接状态、进程号及进程对应程序名称。
  3. 通过以上方式找到计算机所开启的通信进程,判断哪些是不认识的程序,可以在任务管理处查看进程对应是什么软件开启的,该软件存于本地什么路径,找到并将其删除。

2.2 寻找特定端口情况

  1. 在Windows系统中,是使用findstr配合通道符|来进行查询结果过滤,由于-b查询对应的程序名所在含并没有含有指定的字符串80,因此并未显示出来,故以下两个命令显示结果一致。
  2. 在Linux系统中,是使用grep配合通道符|来进行查询结果的过滤。

待续……

更多推荐

netstat命令参数及其应用方式(Windows与Linux的对比)