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


263

是否可以通过Windows命令行检查特定端口的状态?我知道我可以使用netstat检查所有端口,但是netstat速度很慢,查看特定端口可能不是。


6
netstat仅在不使用该-n开关时速度很慢,这意味着它必须进行大量DNS查找。
2014年

Answers:


282

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

在cmd中:

netstat -na | find "8080"

在bash中:

netstat -na | grep "8080"

在PowerShell中:

netstat -na | Select-String "8080"

3
如何使用此命令?我想知道此端口号是否正常工作:-[link](https://.localhost:9043 / ibm / console / login.do)
Mayur Ingle,

8
同样值得一提的是,该-o标志(即-nao此处)包括使用端口的进程的PID。
史蒂夫·钱伯斯

104

您可以将netstat结合使用-np标志和findfindstr命令的管道。

基本用法如下:

netstat -np <protocol> | find "port #"

因此,例如检查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

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


73

我用:

netstat –aon | find "<port number>"

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

taskkill /F /pid <process ID>

简单明了的答案,谢谢
Mohit Singh '18

69

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

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

在此处输入图片说明

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


非常好,非常感谢!我专门针对TCP使用以下命令:netstat -o -nap TCP | findstr 0.0:80
denyoha

20

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

最基本的:

netstat -an | find ":N"

要么

netstat -a -n | find ":N"

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

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

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

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

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

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

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

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

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

进一步阅读(^ 0 ^)

netstat /?

find /?

findstr /?

9
netstat -a -n | find /c "10.240.199.9:8080"

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


3
这不适用于Windows 2012 R2上的Windows Power Shell,收到的结果为FIND: Parameter format not correct
Chaminda Bandara

6

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

如果像LISTENING这样的答复来了,那么该端口正在使用中,否则它是免费的。


2

为了改善@EndUzr的响应

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

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

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

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

其中N是您感兴趣的端口号。“ / r”开关告诉它将其作为regexp处理。“ / c”开关允许findstr在搜索字符串中包含空格,而不是将空格视为搜索字符串定界符。此增加的空间可防止对较长的端口进行处理-例如,“:80”和“: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 *[^ ]*:[^ ]*"

1

对于端口80,命令为:netstat -an | 找到“ 80”对于端口n,命令为:netstat -an | 找到“ n”

在这里,netstat是您的机器的指令

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

然后,找到一个命令以“模式匹配”前一个命令的输出。


0

这对你有帮助

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both

0

在RHEL 7中,我使用以下命令过滤处于LISTEN状态的多个端口:

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


-5

使用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)

4
负号,因为这不是Windows命令。如果在Windows上可用,则没有有关如何获取它的讨论。
Ro Yo Mi

1
不回答OP的问题。-1。
FractalSpace 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.