如何通过 PowerShell 获取虚拟机网络流量分析

云磊君_8070

云磊君_8070

2026-06-11

821人浏览

原创

powershell无法捕获原始网络包,但可通过get-azeffectivenetworksecuritygroup分析nsg规则、test-aznetworkipflow验证连接通断、解析nsg流日志定位真实拒绝流量,并结合get-nettcpconnection查看vm内部进程连接。

powershell 本身不能直接获取 azure 虚拟机(vm)的原始网络流量包或完整会话内容,但它能高效调用 azure 平台提供的诊断能力,实现对 vm 网络流量的**策略级分析、连接验证与安全规则溯源**——这是生产环境中最实用、最可靠的排查路径。

查看 VM 网络接口的有效安全规则

流量不通?先确认是不是被 NSG(网络安全组)拦截。以下命令可一次性列出应用到指定 VM 网卡的所有入站/出站规则(含子网和网卡两级 NSG 合并结果):

  • 确保已登录 Azure:Connect-AzAccount
  • 执行命令(替换为你的资源名):
    Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName "myVMVMNic" -ResourceGroupName "myResourceGroup"
  • 输出中重点关注 Protocol、SourceAddressPrefix、DestinationPortRange 和 Access 字段;若某条规则标记为 Deny 且匹配你的通信场景(如源为 0.0.0.0/0、目标端口 80),即为阻断根因。

使用 IP 流验证测试具体连接通断

模拟真实通信路径,验证从 VM 到某个目标 IP+端口是否可达,并明确失败原因(是路由问题、NSG 拒绝,还是目标无响应):

亿图脑图
亿图脑图

亿图脑图是一款AI思维导图工具,万兴科技推出的跨端AI思维导图助手。

下载
  • 启用 Network Watcher(若未启用):
    Enable-AzNetworkWatcher -Location "East US"
  • 运行验证(示例:检查 VM 是否能连通 8.8.8.8 的 53 端口):
    Test-AzNetworkIPFlow -TargetResourceId "/subscriptions/xxx/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM" -Direction Outbound -Protocol TCP -LocalIPAddress "10.0.0.4" -LocalPort 12345 -RemoteIPAddress "8.8.8.8" -RemotePort 53
  • 返回结果中的 Access(Allow/Deny)、RuleName(触发的具体 NSG 规则)和 Reason(如 “Rule does not match” 或 “No matching rule”)直接定位问题层级。

导出并分析 NSG 流日志(需提前开启)

若已为 NSG 启用流日志(存储到 Storage Account 或 Log Analytics),可用 PowerShell 查询近 7 天内的实际拒绝/允许记录:

  • 读取存储账户中的日志(需安装 Az.Storage):
    $ctx = New-AzStorageContext -StorageAccountName "mystorage" -StorageAccountKey "xxx"
    Get-AzStorageBlobContent -Container "insights-logs-networksecuritygroupflowevent" -Blob "resourceId=xxx/y=2026/m=06/d=06/h=12/m=00/..." -Context $ctx -Destination "nsg-log.json"
  • 解析 JSON 日志(简化示例):
    (Get-Content nsg-log.json | ConvertFrom-Json).records | Where-Object {$_.properties.status -eq "Reject"} | Select-Object @{n="Src";e={$_.properties.srcIP}}, @{n="Dst";e={$_.properties.dstIP}}, dstPort, protocol
  • 该方式可发现真实发生的“被拒连接”,比如某后台进程频繁尝试连外网特定端口,而该行为在本地 PowerShell 中不可见。

补充:本地 VM 内部流量观察(非 Azure 平台层)

若需了解 VM 自身进程的实时网络行为(如哪个程序在发包),回到 Windows 原生命令组合:

  • 查当前活跃 TCP 连接及所属进程:
    Get-NetTCPConnection | Where-Object State -eq 'Established' | ForEach-Object { [PSCustomObject]@{ RemoteAddr = $_.RemoteAddress; Port = $_.RemotePort; Process = (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName } } | Sort-Object RemoteAddr
  • 结合 Get-Counter "\Network Interface\*\Bytes Received/sec" 查网卡瞬时速率,交叉比对高流量时段的连接列表,缩小嫌疑进程范围。
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
虚拟化软件介绍
虚拟化软件介绍

虚拟化软件有VMware、VirtualBox、Hyper-V、Parallels Desktop、Oracle VirtualBox等。想了解更多虚拟化的相关内容,可以阅读本专题下面的文章。

2023.12.20

8939

8

虚拟化软件介绍
虚拟化软件介绍

虚拟化软件有VMware、VirtualBox、Hyper-V、Parallels Desktop、Oracle VirtualBox等。想了解更多虚拟化的相关内容,可以阅读本专题下面的文章。

2023.12.20

8939

8

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

20

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

0

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

20

15

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

2026.10.15

20

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习