我有两台 Windows 服务器。服务器 A 和服务器 B。服务器 A 上配置了一项服务以监听端口 P。有没有办法检查 Windows 服务器 B 中的端口是否打开,而不管服务是否正在运行。一种方法是 telnet ......但这仅在服务正在运行并监听端口时才有效。但是,有没有办法无论服务状态如何都可以查找端口是否打开?Linux 有一个“nc”命令来实现相同的功能。Windows 中有类似的东西吗?
谢谢。!
答案1
您可以使用 netstat.exe 查询开放端口。
执行 netstat 命令:
C:\Users\user>netstat.exe /?
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.
例如 netstat -a:
C:\Users\user>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 10.10.11.20:0 LISTENING
TCP 0.0.0.0:445 10.10.11.20:0 LISTENING
TCP 0.0.0.0:1433 10.10.11.20:0 LISTENING
TCP 0.0.0.0:1801 10.10.11.20:0 LISTENING
TCP 0.0.0.0:2103 10.10.11.20:0 LISTENING
要执行远程 netstat.exe,您可以使用 psexec 工具(可从以下网址免费获取这里)
例子:
C:\Users\user>psexec \\10.10.21.145 netstat -a
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 10.10.21.145:0 LISTENING
TCP 0.0.0.0:445 10.10.21.145:0 LISTENING
TCP 0.0.0.0:2701 10.10.21.145:0 LISTENING
TCP 0.0.0.0:3389 10.10.21.145:0 LISTENING