有没有一种方法可以从Windows命令行检查特定端口的状态?我知道我可以使用netstat来检查所有端口,但netstat很慢,而查看特定的端口可能不是。


当前回答

Windows 8用户:打开命令提示符,输入netstat -an | find "your port number",输入。

如果回复是LISTENING,那么端口正在使用中,否则它是空闲的。

其他回答

对于80端口,命令是:netstat -an | find "80" 对于端口n,命令如下:netstat -an | find "n"

这里,netstat是计算机的指令

-a:显示所有连接和监听端口 -n:以数字格式显示所有地址和指令(这是必需的,因为-a的输出可能包含机器名)

然后,一个find命令来“模式匹配”前一个命令的输出。

Windows 8用户:打开命令提示符,输入netstat -an | find "your port number",输入。

如果回复是LISTENING,那么端口正在使用中,否则它是空闲的。

在RHEL 7中,我使用这个命令来过滤LISTEN状态下的几个端口:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

使用lsof命令"lsof -i tcp:port #",例如:

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)

如其他地方所述:使用netstat,使用适当的开关,然后使用find[str]过滤结果

最基本的:

netstat -an | find ":N"

or

netstat -a -n | find ":N"

要找到一个你可以使用的外国端口:

netstat -an | findstr ":N[^:]*$"

要查找您可能使用的本地端口:

netstat -an | findstr ":N.*:[^:]*$"

其中N为您感兴趣的端口号。

-n确保所有端口都是数字,即不返回转换为服务名称的端口。

-a将确保你搜索所有的连接(TCP, UDP,监听…)

在find字符串中,必须包含冒号作为端口限定符,否则该数字可能匹配本地地址或外部地址。

您可以根据需要使用其他netstat开关进一步缩小搜索范围…

进一步阅读(^0^)

netstat /?

find /?

findstr /?