【问题标题】:What port is a given program using? [closed]给定程序使用什么端口? [关闭]
【发布时间】:2010-09-11 10:47:20
【问题描述】:

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

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

【问题讨论】:

  • 无论您是否打算将其用作某个编程项目的一部分,这都不是编程问题。

标签: windows networking


【解决方案1】:

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

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

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

【讨论】:

  • 如果有人有权编辑答案,请考虑在下面添加 vasac 的答案 (TCPView),以供任何需要使用真实 gui 的更完整版本的人使用
  • 我将 TCPView 的链接添加到我的答案中。
  • 防火墙有什么办法吗?
  • -p & -b 选项不可靠,看我的回答:superuser.com/questions/191416/…
【解决方案2】:

TCPView 可以做你想做的事。

【讨论】:

  • 谢谢; netstat 足以满足我的需求,但如果我需要更核心的东西,我一定会使用 TCPView。应该添加到已接受的答案中,但可惜我还没有编辑权限。
  • 我一直在使用 XAMPP 附带的 Netstat 实用程序。但是这个独立的实用程序非常有用。谢谢。
【解决方案3】:

在 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

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

    • 有没有办法在不选择进程的情况下做到这一点?如果想通过端口定位进程?
    【解决方案5】:

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

    【讨论】:

    • 另一个不错的选择。哇,不知道这是一个如此受欢迎的主题:)
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

      • 正是我需要的,10 倍!
      【解决方案8】:

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

      【讨论】:

        【解决方案9】:

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

        【讨论】:

        • 如果我还有票,我会投票赞成。
        • -1: -a 不提供进程 ID
        • @CharlesB 如果您添加 -o 选项,则可以。
        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

          Open Ports Scanner 为我工作。

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              猜你喜欢
              • 2011-12-30
              • 2014-05-18
              • 1970-01-01
              • 1970-01-01
              • 2018-06-04
              • 2015-04-29
              • 2012-09-29
              • 1970-01-01
              相关资源
              最近更新 更多