给定程序使用哪个端口?[关闭]


99

我希望能够弄清楚特定程序正在使用哪个端口。是否有任何在线可用程序或Windows附带的程​​序可以告诉我哪些进程正在使用计算机上的哪些端口?

PS-在您对这不是编程问题进行下调之前,我正在寻找可以测试一些网络代码的程序。


7
无论您是否打算将其用作某些编程项目的一部分,这都不是编程问题。
Lightness Races in Orbit

Answers:


149

netstat -b -a列出正在使用的端口,并为您提供正在使用的每个端口的可执行文件。我相信您需要在管理员组中才能执行此操作,并且我不知道Vista会对安全产生什么影响。

我通常-n也会增加速度,但是增加速度-b可能会很慢。

编辑:如果您需要除netstat提供的更多功能,vasac建议您尝试使用TCPView


1
如果有人有权编辑答案,请考虑在下面使用vasac的答案(TCPView),为需要此功能的更全版本的人提供真实的GUI
AlexeyMK

我在我的答案中添加了指向TCPView的链接。
Graeme Perrow

1
防火墙有什么办法吗?
Mohammad Kermani 2014年

42

TCPView可以满足您的要求。


1
谢谢; netstat可以满足我的需求,但如果我需要更多的硬核,我一定会使用TCPView。应该添加到接受的答案中,但是我还没有编辑的权利。
AlexeyMK

我一直在使用XAMPP附带的Netstat实用程序。但是,该独立实用程序非常有用。谢谢。
Shiyaz

25

在Vista上,您确实需要提升的特权才能在netstat中使用-b选项。为了解决这个问题,您可以运行“ netstat -ano”,它将显示所有打开的端口以及相关的进程ID。然后,您可以使用任务列表查找哪个进程具有相应的ID。

C:\>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  ...
  TCP    [::]:49335             [::]:0                 LISTENING       1056
  ...

C:\>tasklist /fi "pid eq 1056"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
sqlservr.exe                  1056 Services                   0     66,192 K

13

您可能已经安装了Process Explorer(来自Sysinternals,现在是Microsoft的一部分)。如果没有,请立即安装它-就是那样酷。

在“进程资源管理器”中:找到有问题的进程,右键单击并选择“ TCP / IP”选项卡。对于每个套接字,它甚至还会向您显示表示打开该套接字的代码的堆栈跟踪。


7

如果您更喜欢GUI界面,则CurrPorts是免费的,并且可用于所有版本的Windows。显示端口及其打开的过程。


另一个不错的选择。哇,不知道这是一个受欢迎的话题:)
AlexeyMK


4

Windows 8(可能还有7 + Vista)也在Resource Monitor中提供了一个视图。如果选择“网络”选项卡,则有一个名为“侦听端口”的部分。可以按端口号排序,并查看正在使用哪个进程。


正是我需要的10倍!
soninob


1

在命令行中,netstat -a将为您提供许多信息。


如果我还有剩余票数,我会投票赞成。
UnkwnTech

-1:-a不提供进程ID
CharlesB 2011年

@CharlesB如果添加-o选项,它会这样做。
2013年



-1

大多数不错的防火墙程序都应允许您访问此信息。我知道Agnitum OutpostPro防火墙可以。

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.