我希望能够找出特定程序正在使用的端口。是否有在线可用的程序或带有窗口的程序可以告诉我哪些进程正在使用我的计算机上的哪些端口?
PS - 在你因为不是一个编程问题而将其下调之前,我正在寻找测试一些网络代码的程序。
答案 0 :(得分:145)
netstat -b -a
列出正在使用的端口,并为您提供使用每个端口的可执行文件。我相信您需要在管理员组中才能执行此操作,而且我不知道Vista上存在哪些安全隐患。
我通常也会添加-n
以使其更快一些,但添加-b
可能会让它变得非常慢。
编辑:如果您需要比netstat提供的更多功能,vasac suggests您尝试TCPView。
答案 1 :(得分:41)
TCPView可以满足您的要求。
答案 2 :(得分:22)
在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
答案 3 :(得分:10)
您可能已经安装了Process Explorer(来自Sysinternals,现在是Microsoft的一部分)。如果没有,请继续安装它 - 它就是那么酷。
在Process Explorer中:找到有问题的进程,右键单击并选择TCP / IP选项卡。它甚至会为每个套接字显示一个堆栈跟踪,表示打开该套接字的代码。
答案 4 :(得分:6)
如果您更喜欢GUI界面CurrPorts是免费的,并且适用于所有版本的Windows。显示端口以及打开它们的进程。
答案 5 :(得分:3)
“netstat -natp”是我一直使用的。
答案 6 :(得分:2)
Windows附带netstat
实用程序,它应该完全按照您的意愿执行。
答案 7 :(得分:1)
Windows 8(可能还有7 + Vista)也在资源监视器中提供了一个视图。如果选择“网络”标签,则会出现一个名为“听力端口”的部分。可以按端口号排序,并查看正在使用它的进程。
答案 8 :(得分:0)
在命令行中,netstat -a会给你很多信息。
答案 9 :(得分:0)
您可以使用'netstat'命令。有一种描述做这种事here。
答案 10 :(得分:0)
答案 11 :(得分:-1)
大多数不错的防火墙程序都应该允许您访问此信息。我知道Agnitum OutpostPro防火墙可以。