用于查看特定端口的命令行

use*_*018 244 windows port networking command-prompt

有没有办法从Windows命令行检查特定端口的状态?我知道我可以使用netstat来检查所有端口但netstat很慢并且查看特定端口可能不是.

Md.*_*lam 239

这是端口查找的简单解决方案 ......

在cmd中:

netstat -na | find "8080"
Run Code Online (Sandbox Code Playgroud)

在bash中:

netstat -na | grep "8080"
Run Code Online (Sandbox Code Playgroud)

  • 另外值得一提的是`-o`标志(即`-nao` here)以包含使用端口的进程的PID. (7认同)
  • 如何使用此命令?我想知道这个端口号是否有效链接: - [link](https://.localhost:9043/ibm/console/login.do) (3认同)

Riv*_*asa 103

您可以netstat结合使用-np标志和管道来执行findfindstr命令.

基本用法是这样的:

netstat -np <protocol> | find "port #"
Run Code Online (Sandbox Code Playgroud)

因此,例如,要检查TCP上的端口80,您可以执行此操作:netstat -np TCP | find "80" 最终提供以下类型的输出:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED
Run Code Online (Sandbox Code Playgroud)

如您所见,这仅显示TCP协议的端口80上的连接.


Him*_*ant 68

我用:

netstat –aon | find "<port number>"
Run Code Online (Sandbox Code Playgroud)

这里o表示进程ID.现在你可以使用进程ID执行任何操作.要终止该过程,例如,使用:

taskkill /F /pid <process ID>
Run Code Online (Sandbox Code Playgroud)


Moh*_*ari 66

当我遇到WAMP apache问题时,我使用此代码查找哪个程序正在使用端口80.

netstat -o -n -a | findstr 0.0:80
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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


小智 20

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

最基本的:

netstat -an | find ":N"
Run Code Online (Sandbox Code Playgroud)

要么

netstat -a -n | find ":N"
Run Code Online (Sandbox Code Playgroud)

要查找您可以使用的外国港口:

netstat -an | findstr ":N[^:]*$"
Run Code Online (Sandbox Code Playgroud)

要查找本地端口,您可以使用:

netstat -an | findstr ":N.*:[^:]*$"
Run Code Online (Sandbox Code Playgroud)

其中N是您感兴趣的端口号.

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

-a 将确保您搜索所有连接(TCP,UDP,监听...)

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

您可以根据需要使用其他netstat交换机进一步缩小搜索范围...

进一步阅读(^ 0 ^)

netstat /?

find /?

findstr /?
Run Code Online (Sandbox Code Playgroud)


小智 9

netstat -a -n | find /c "10.240.199.9:8080"
Run Code Online (Sandbox Code Playgroud)

它将为您提供特定IP和端口上活动的套接字数量(服务器端口号)

  • 这不适用于Windows 2012 R2上的Windows电源外壳,并且收到的结果为"FIND:参数格式不正确" (3认同)

小智 8

它将为您提供特定 IP 上的所有活动套接字:

netstat -an | find "172.20.1.166"
Run Code Online (Sandbox Code Playgroud)


小智 6

对于Windows 8用户:打开命令提示符,键入netstat -an | 找到"您的端口号",输入.

如果回复就像LISTENING那么端口正在使用中,否则它是免费的.


sha*_*awn 5

改进@EndUzr 的回复

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

netstat -an | findstr /r /c:":N [^:]*$"
Run Code Online (Sandbox Code Playgroud)

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

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "
Run Code Online (Sandbox Code Playgroud)

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

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

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"
Run Code Online (Sandbox Code Playgroud)

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

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"
Run Code Online (Sandbox Code Playgroud)

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

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
Run Code Online (Sandbox Code Playgroud)


Job*_*mes 5

这会帮助你

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
Run Code Online (Sandbox Code Playgroud)