本文转载自微信公众号「DBA闲思杂想录」,作者潇湘隐者。转载本文请联系 DBA闲思杂想录公众号。
下面整理、总结了(Windows平台下)如何查看服务器端口信息的一些方法和工具。
1:tcpview工具查看端口
使用tcpview利器查看端口信息,这个工具不仅能显示当前服务器的端口(Local Port),还能看到一个TCP连接对应的远程端口号等信息。
2:"资源监视器"查看端口
运行资源管理器的方式多种多样,下面列举了常用的三种方式:
1:在“菜单” → “所有程序” → “附件” → “系统工具” → “资源监视器”
英文系统对应的操作如下:
Start menu → All Programs → Accessories → System Tools → Resource Monitor
2:Windows + R 运行resmon.exe命令启动“资源监视器”。
3:Windows任务管理器中点击“资源监视器”
如下截图所示,在“资源监视器”里面,你会找到“侦听端口”面板,你会找到对应的程序名、进程号、协议、防火墙状态,地址、端口。信息比较详细,定期刷新。也能清晰的看到防火墙是否限制该端口号。另外也可以按某些指标排序。不足之处也比较明显:搜索定位比较麻烦,归纳统计比较麻烦。
3:命令netstat查看端口
netsta命令非常强大,可以用显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
查看netstat命令的帮助信息:
- netstat --help
- 显示协议统计和当前 TCP/IP 网络连接。
- NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
- -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。
- -r 显示路由表。
- -s 显示每个协议的统计。默认情况下,显示
- IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6
- 的统计;-p 选项可用于指定默认的子网。
- -t 显示当前连接卸载状态。
- interval 重新显示选定的统计,各个显示间暂停的间隔秒数。
- 按 CTRL+C 停止重新显示统计。如果省略,则 netstat
- 将打印当前的配置信息一次。
注意:Windows下的netstat的命令跟Linux下的netstat命令的参数有所区别,最好查看命令的帮助信息。
一些netstat命令的例子,nestat命令的强大之处在于灵活多变,可以满足各种场景。
查看所有监听的端口
- C:\Users>netstat -aon | find /i "listening"
- C:\Users>netstat -ano | findstr ":139"
- TCP 192.168.103.63:139 0.0.0.0:0 LISTENING 4
- C:\Users>netstat -aon | find /i "listening" | find "445"
- TCP 192.168.103.63:139 0.0.0.0:0 LISTENING 4
- C:\Users>
显示UDP端口号的使用情况:
- C:\Users>netstat -a -p UDP
其中find命令的帮助信息如下:
- C:\Users>find /?
- 在文件中搜索字符串。
- FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
- /V 显示所有未包含指定字符串的行。
- /C 仅显示包含字符串的行数。
- /N 显示行号。
- /I 搜索字符串时忽略大小写。
- /OFF[LINE] 不要跳过具有脱机属性集的文件。
- "string" 指定要搜索的文本字符串。
- [drive:][path]filename
- 指定要搜索的文件。
- 如果没有指定路径,FIND 将搜索在提示符处键入
- 的文本或者由另一命令产生的文本。
其中finstr命令的帮助信息如下:
- C:\Users>findstr /?
- 在文件中寻找字符串。
- FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
- [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
- strings [[drive:][path]filename[ ...]]
- /B 在一行的开始配对模式。
- /E 在一行的结尾配对模式。
- /L 按字使用搜索字符串。
- /R 将搜索字符串作为一般表达式使用。
- /S 在当前目录和所有子目录中搜索匹配文件。
- /I 指定搜索不分大小写。
- /X 打印完全匹配的行。
- /V 只打印不包含匹配的行。
- /N 在匹配的每行前打印行数。
- /M 如果文件含有匹配项,只打印其文件名。
- /O 在每个匹配行前打印字符偏移量。
- /P 忽略有不可打印字符的文件。
- /OFF[LINE] 不跳过带有脱机属性集的文件。
- /A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
- /F:file 从指定文件读文件列表 (/ 代表控制台)。
- /C:string 使用指定字符串作为文字搜索字符串。
- /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
- /D:dir 查找以分号为分隔符的目录列表
- strings 要查找的文字。
- [drive:][path]filename
- 指定要查找的文件。
- 除非参数有 /C 前缀,请使用空格隔开搜索字符串。
- 例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
- "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
- "hello there"。
- 一般表达式的快速参考:
- . 通配符: 任何字符
- * 重复: 以前字符或类出现零或零以上次数
- ^ 行位置: 行的开始
- $ 行位置: 行的终点
- [class] 字符类: 任何在字符集中的字符
- [^class] 补字符类: 任何不在字符集中的字符
- [x-y] 范围: 在指定范围内的任何字符
- \x Escape: 元字符 x 的文字用法
- \<xyz 字位置: 字的开始
- xyz\> 字位置: 字的结束
- 有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。