给定程序使用什么端口?

Ale*_*yMK 98 windows networking

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

PS - 在你因为不是一个编程问题而下调这个问题之前,我正在寻找测试一些网络代码的程序.

Gra*_*row 146

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

我通常-n也会添加它以使其快一点,但添加-b可以使它变得非常慢.

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

  • 它是-pan,而不是-ban (2认同)

小智 23

在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
Run Code Online (Sandbox Code Playgroud)


Ada*_*itz 11

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

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

  • 有没有办法在不选择进程的情况下做到这一点?万一想通过端口定位进程呢? (2认同)

ctc*_*rry 6

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


Ste*_*ker 5

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