无脑撑哈登 發表於 2024-11-5 11:25:32

查看Windows监听端口占用的两种命令: Netstat或Powershell用法

<p>监听端口是计算机当前正在使用的端口,用于建立计算机之间的网络连接。虽然打开、监听和关闭网络端口的过程是无缝的,但识别当前打开或监听的端口可以帮助解决与网络相关的问题。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202411/2024110511111767.jpg" /></p>
<p>在 Windows 中,有两个主要命令可用于检查打开的监听端口:</p>
<ul><li>Netstat(命令提示符)</li><li>Get-NetTCPConnection(PowerShell)</li></ul>
<p>这两个命令对于 IT Pro 和系统管理员非常有用,本文将介绍如何使用「命令提示符」和 PowerShell 查看 Windows 打开和监听的端口。</p>
<h3>监听端口的类型</h3>
<p>打开或监听的端口是 Windows 中应用程序或服务正在使用的端口,用于与其它网络设备建立连接。在 Windows 中有两种类型的连接端口:</p>
<ul><li>TCP(传输控制协议)</li><li>UDP(用户数据报协议)</li></ul>
<p>Windows 中的不同应用程序会打开不同的端口(TCP 或 UDP),UDP 速度更快但不太安全,而 TCP 速度较慢但更安全。</p>
<h3>使用 Netstat 命令查看 Windows 监听端口</h3>
<p>要查看 Windows 占用的监听端口,请按以下步骤操作:</p>
<p>1、在「开始」菜单中搜索 <code>cmd</code> &ndash; 选择「以管理员身份运行」以打开「命令提示符」。</p>
<p>2、按以下方式运行 Netstat 命令:</p>
<div class="jb51code"><pre>netstat -a
#或
netstat -ano</pre></div>
<ul><li><code>-a</code>&nbsp;开关显示 Windows 正在监听的所有活动连接,包括 TCP 和 UDP。</li><li><code>-o</code>&nbsp;开关显示每个进程的 PID。</li><li><code>-n</code>&nbsp;开关以数值形式显示 IP 地址和端口号。</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202411/2024110511111868.jpg" /></p>
<p style="text-align:center">使用 Netstat 在命令提示符中检查侦听端口</p>
<p>上述命令会输出以下内容:</p>
<ul><li>协议(TCP 或 UDP)</li><li>本地地址(当前 Windows 设备的 IP 地址)</li><li>外部地址(远程设备的 IP 地址)</li><li>状态(Listening、Established、Time_Wait 和 Close_Wait)</li><li>PID(打开该端口的进程 PID)</li></ul>
<p>3、「本地地址」中的「:」冒号后面跟的数字是监听端口号。如果只查看监听状态的端口,可以运行以下命令:</p>
<div class="jb51code"><pre>netstat -aon | findstr /i listening</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202411/2024110511111869.jpg" /></p>
<p style="text-align:center">使用 Netstat 在命令提示符中列出所有侦听端口</p>
<p>「外部地址」字段中的 <code>0.0.0.0:0</code> 表示该端口用于广播。</p>
<p>您可以配合以下参数与 Netstat 命令一起使用:</p>
<table><tbody><tr><th>参数</th><th>描述</th></tr><tr><td>-a</td><td>显示包括 TCP 和 UDP 在内的所有连接。</td></tr><tr><td>-n</td><td>以数值形式显示 IP 地址和端口号。</td></tr><tr><td>-o</td><td>显示进程 PID。</td></tr><tr><td>-p</td><td>显示特定协议的连接。</td></tr><tr><td>-r</td><td>显示内核路由表。</td></tr><tr><td>-s</td><td>按协议显示统计信息。</td></tr><tr><td>-t</td><td>显示当前活动的连接。</td></tr><tr><td>-f</td><td>将 IP 地址解析为 FQDN。</td></tr><tr><td>-e</td><td>显示网络统计信息,包括错误、字节数、发送和接收的数据包等。</td></tr><tr><td>interval</td><td>命令自动再次运行的时间间隔(以秒为单位)。</td></tr></tbody></table>
<h3>使用 Powershell 查看 Windows 监听端口</h3>
<p>Get-NetTCPConnection cmdlet 是 PowerShell 中与 Netstat 命令相对应的命令。它能够查看与 Netstat 类似的信息。您可以使用 <code>Get-NetTCPConnection</code> 命令输出以下信息:</p>
<ul><li>本地地址</li><li>本地端口</li><li>远程地址</li><li>远程端口</li><li>状态</li></ul>
<p>1、可以使用 <code>Where-Object</code> 过滤器对输出内容进行筛选,它类似于 <code>findstr</code> 命令:</p>
<div class="jb51code"><pre>Get-NetTCPConnection | Where-Object {$_.State -eq 'Listen'}</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202411/2024110511111870.jpg" /></p>
<p style="text-align:center">使用 PowerShell 查看 Windows 监听端口占用</p>
<p>2、还可以使用 <code>-State</code> 参数按状态筛选连接列表:</p>
<div class="jb51code"><pre>Get-NetTCPConnection -State Listen</pre></div>
<p>这将显示所有处于「监听」状态的端口。</p>
<p>3、也可以使用端口号来应用筛选器:</p>
<div class="jb51code"><pre>Get-NetTCPConnection -LocalPort 22</pre></div>
<p>4、可以运行以下命令以获取每个连接的详细信息:</p>
<div class="jb51code"><pre>Get-NetTCPConnection | Select-Object -Property *</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202411/2024110511111871.jpg" /></p>
<p style="text-align:center">Get-NetTCPConnection 选择对象属性</p>
<p><code>Get-NetTCPConnection</code> 与 <code>Netstat</code> 之间的主要区别在于,可以使用 <code>Invoke-Command</code> 命令远程调用。</p>
<p>PowerShell 还提供了另一个 <code>GetNetStat</code> 命令 ,用于在 Windows 以外的操作系统(如 Linux)上查看打开或监听的端口。GetNetStat 是一个跨平台模块,可在安装 PowerShell 的计算机上运行。</p>
頁: [1]
查看完整版本: 查看Windows监听端口占用的两种命令: Netstat或Powershell用法