ZetCode

PowerShell Get-NetTCPConnection

最后修改:2025 年 2 月 15 日

本文介绍了PowerShell中的Get-NetTCPConnection cmdlet。它检索有关系统上活动TCP连接的信息。这对于网络故障排除和监控很有用。

TCP连接基础知识

TCP(传输控制协议)是核心的互联网协议。它提供可靠、有序且经过错误检查的数据传输。每个TCP连接都有一个本地和远程IP地址及端口。Get-NetTCPConnection cmdlet显示这些活动连接。它有助于识别网络活动。

Get-NetTCPConnection基本用法

使用Get-NetTCPConnection的最简单方法是不带参数。这将列出系统上的所有活动TCP连接。输出包括本地和远程地址、端口和连接状态。每个连接都显示为一个具有属性的对象。

tcp1.ps1
Get-NetTCPConnection

此命令检索所有活动的TCP连接。输出显示本地和远程端点、状态和进程ID。它对于一般网络监控很有用。

按状态筛选连接

您可以使用-State参数按其状态筛选连接。常见状态包括Established(已建立)、Listen(侦听)、TimeWait(等待关闭)和CloseWait(等待关闭)。这有助于聚焦于特定类型的连接。对于故障排除特别有用。

tcp2.ps1
Get-NetTCPConnection -State Established

此命令仅返回已建立的TCP连接。这些是当前正在传输数据的活动连接。它有助于识别当前网络活动。

PS C:\> .\tcp2.ps1

LocalAddress                        LocalPort RemoteAddress                       RemotePort State       AppliedSetting OwningProcess
------------                        --------- -------------                       ---------- -----       -------------- -------------
192.168.1.100                       49876    172.217.14.206                      443        Established Internet       6784
192.168.1.100                       49875    151.101.1.69                        443        Established Internet       6784

按本地端口查找连接

您可以使用-LocalPort查找使用特定本地端口的连接。这在对使用固定端口的服务进行故障排除时很有用。端口号必须指定为整数。可以指定多个端口作为数组。

tcp3.ps1
Get-NetTCPConnection -LocalPort 443

此命令返回使用本地端口443(HTTPS)的连接。它有助于识别使用安全Web连接的服务或应用程序。输出包括用于进一步调查的进程ID。

获取带进程信息的连接

要查看哪些进程拥有TCP连接,请包含OwningProcess属性。然后,您可以将其与Get-Process结合以获取详细信息。这有助于识别网络连接背后的应用程序。管道用于连接数据。

tcp4.ps1
Get-NetTCPConnection | Where-Object { $_.State -eq 'Established' } |
    Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess |
    ForEach-Object {
        $process = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
        $_ | Add-Member -NotePropertyName 'ProcessName' -NotePropertyValue $process.Name -PassThru
    }

此命令显示具有进程名称的已建立连接。它首先筛选已建立的连接,然后添加进程名称。结果是按应用程序查看网络活动的全面视图。

监控远程连接

要监控到特定远程地址的连接,请使用-RemoteAddress。这有助于识别到特定服务器或服务的连接。不支持通配符;请使用IP地址或主机名。这对于安全审计很有用。

tcp5.ps1
Get-NetTCPConnection -RemoteAddress 8.8.8.8

此命令返回到Google DNS服务器(8.8.8.8)的连接。它有助于验证您的系统是否与特定的外部主机通信。输出显示连接详细信息,包括端口和状态。

来源

PowerShell 文档

在本文中,我们介绍了PowerShell中的Get-NetTCPConnection cmdlet。

作者

我的名字是Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。自2007年以来,我一直在撰写编程文章。至今,我已撰写了1400多篇文章和8本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程