【发布时间】:2010-09-11 10:47:20
【问题描述】:
我希望能够弄清楚特定程序正在使用哪个端口。是否有任何可用的在线程序或 Windows 附带的程序可以告诉我哪些进程正在使用我计算机上的哪些端口?
PS - 在你因为不是编程问题而对其进行降级之前,我正在寻找测试一些网络代码的程序。
【问题讨论】:
-
无论您是否打算将其用作某个编程项目的一部分,这都不是编程问题。
标签: windows networking
我希望能够弄清楚特定程序正在使用哪个端口。是否有任何可用的在线程序或 Windows 附带的程序可以告诉我哪些进程正在使用我计算机上的哪些端口?
PS - 在你因为不是编程问题而对其进行降级之前,我正在寻找测试一些网络代码的程序。
【问题讨论】:
标签: windows networking
netstat -b -a 列出正在使用的端口,并为您提供正在使用每个端口的可执行文件。我认为您需要在管理员组中才能执行此操作,而且我不知道 Vista 上存在哪些安全隐患。
我通常也会添加-n 以使其更快一点,但添加-b 会使其变得很慢。
编辑:如果您需要比 netstat 提供的更多功能,请尝试vasac suggests TCPView。
【讨论】:
-p & -b 选项不可靠,看我的回答:superuser.com/questions/191416/…
TCPView 可以做你想做的事。
【讨论】:
在 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
【讨论】:
您可能已经安装了 Process Explorer(来自 Sysinternals,现在是 Microsoft 的一部分)。如果没有,请立即安装 - 真是太棒了。
在进程资源管理器中:找到相关进程,右键单击并选择 TCP/IP 选项卡。它甚至会为您显示每个套接字的堆栈跟踪,代表打开该套接字的代码。
【讨论】:
如果您更喜欢 GUI 界面 CurrPorts 是免费的,并且适用于所有版本的 Windows。显示端口以及打开它们的进程。
【讨论】:
“netstat -natp”是我一直使用的。
【讨论】:
Windows 8(可能还有 7 + Vista)也在资源监视器中提供了一个视图。如果您选择“网络”选项卡,则会有一个名为“侦听端口”的部分。可以按端口号排序,看看哪个进程在使用它。
【讨论】:
Windows 附带 netstat 实用程序,它应该完全符合您的要求。
【讨论】:
在命令行中,netstat -a 会给你很多信息。
【讨论】:
-o 选项,则可以。
您可以为此使用“netstat”命令。有做这种事情的描述here。
【讨论】:
Open Ports Scanner 为我工作。
【讨论】:
大多数体面的防火墙程序应该允许您访问这些信息。我知道 Agnitum OutpostPro 防火墙可以。
【讨论】: