100

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

PS - 在你因为不是编程问题而对它进行降级之前,我正在寻找测试一些网络代码的程序。

4

12 回答 12

149

netstat -b -a列出正在使用的端口,并为您提供正在使用每个端口的可执行文件。我相信您需要在管理员组中才能执行此操作,而且我不知道 Vista 上存在哪些安全隐患。

我通常-n也会添加以使其更快一点,但添加-b会使它变得很慢。

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

于 2008-09-19T20:41:49.283 回答
42

TCPView可以做你所要求的。

于 2008-09-19T20:45:44.767 回答
25

在 Vista 上,您确实需要提升权限才能将 -b 选项与 netstat 一起使用。为了解决这个问题,您可以运行“netstat -ano”,它将显示所有打开的端口以及相关的进程 ID。然后,您可以使用 tasklist 来查找哪个进程具有相应的 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
于 2008-09-20T00:00:07.047 回答
13

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

在 Process Explorer 中:找到有问题的进程,右键单击并选择 TCP/IP 选项卡。它甚至会为每个套接字显示一个堆栈跟踪,表示打开该套接字的代码。

于 2008-09-19T23:46:02.867 回答
7

如果您更喜欢 GUI 界面CurrPorts是免费的,并且适用于所有版本的 windows。显示端口以及打开它们的进程。

于 2008-09-19T20:59:29.227 回答
5

“netstat -natp”是我一直使用的。

于 2008-09-19T20:48:49.593 回答
4

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

于 2013-08-03T02:03:55.197 回答
3

Windows 附带该netstat实用程序,它应该完全符合您的要求。

于 2008-09-19T20:41:47.147 回答
1

在命令行中, netstat -a 会给你很多信息。

于 2008-09-19T20:41:22.920 回答
1

您可以为此使用“netstat”命令。这里有做这种事情的描述。

于 2008-09-19T20:42:03.387 回答
0

开放端口扫描仪为我工作。

于 2008-09-19T22:04:37.573 回答
-1

大多数体面的防火墙程序应该允许您访问这些信息。我知道 Agnitum OutpostPro 防火墙可以。

于 2008-09-19T20:41:06.040 回答