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


当前回答

为了改进@EndUzr的回复:

要查找外部端口(IPv4或IPv6),您可以使用:

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

要查找本地端口(IPv4或IPv6),您可以使用:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

其中N为您感兴趣的端口号。“/r”开关告诉它将其作为regexp处理。“/c”开关允许findstr在搜索字符串中包含空格,而不是将空格作为搜索字符串分隔符。这种增加的空间可以防止更长的端口被滥用——例如,“:80”vs“:8080”和其他端口修改问题。

列出到本地RDP服务器的远程连接,例如:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

或者查看谁在触摸您的DNS:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

如果你想排除本地端口,你可以使用一系列带有“/v”的异常,并使用反斜杠转义字符:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"

其他回答

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

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

当我有问题与WAMP apache,我使用这段代码找到哪个程序正在使用端口80。

netstat -o -n -a | findstr 0.0:80

3068是PID,所以我可以从任务管理器中找到它并停止该进程。

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

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

这是一个简单的解决方案的港口寻找…

在cmd:

netstat -na | find "8080"

在bash中:

netstat -na | grep "8080"

PowerShell:

netstat -na | Select-String "8080"

为了改进@EndUzr的回复:

要查找外部端口(IPv4或IPv6),您可以使用:

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

要查找本地端口(IPv4或IPv6),您可以使用:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

其中N为您感兴趣的端口号。“/r”开关告诉它将其作为regexp处理。“/c”开关允许findstr在搜索字符串中包含空格,而不是将空格作为搜索字符串分隔符。这种增加的空间可以防止更长的端口被滥用——例如,“:80”vs“:8080”和其他端口修改问题。

列出到本地RDP服务器的远程连接,例如:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

或者查看谁在触摸您的DNS:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

如果你想排除本地端口,你可以使用一系列带有“/v”的异常,并使用反斜杠转义字符:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"