你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Azure 门户记录传入和传出虚拟网络的网络流量

虚拟网络安全组流日志记录是 Azure 网络观察程序的一项功能,可用于记录有关流经 Azure 虚拟网络的 IP 流量的信息。 有关虚拟网络流日志记录的详细信息,请参阅 虚拟网络流日志

本教程可帮助你使用 VNet 流日志来记录流经虚拟网络的虚拟机网络流量。

示意图显示了在教程中创建的资源。

本教程中,您将学习如何:

  • 创建虚拟网络
  • 创建虚拟机
  • 注册 Microsoft.insights 提供者
  • 使用网络观察程序流日志为虚拟网络启用流日志记录
  • 下载记录的数据
  • 查看记录的数据

先决条件

  • 拥有有效订阅的 Azure 帐户。 如果没有帐户,请在开始之前创建 一个免费帐户

创建虚拟网络

在这部分,你要为虚拟机创建拥有一个子网的 myVNet 虚拟网络。

  1. 登录到 Azure 门户

  2. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

    屏幕截图显示如何在 Azure 门户中搜索虚拟网络。

  3. 选择+ 新建。 在“创建虚拟网络”的“基本信息”选项卡中,输入或选择以下值:

    设置 价值
    项目详细信息
    订阅 选择 Azure 订阅。
    资源组 选择“新建”。
    在“名称”中输入“myResourceGroup”。
    选择“确定”。
    实例详细信息
    名称 输入 myVNet
    区域 选择(US)美国东部
  4. 选择“查看 + 创建”

  5. 检查设置,然后选择创建

创建虚拟机

在本部分中,请创建“myVM”虚拟机。

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择 “+ 创建 ”,然后选择 “虚拟机”。

  3. 在“创建虚拟机”中,在“基本信息”选项卡中输入或选择以下值:

    设置 价值
    项目详细信息
    订阅 选择 Azure 订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    虚拟机名称 输入myVM
    区域 选择(US)美国东部
    可用性选项 选择“无需基础结构冗余”。
    安全类型 选择“标准” 。
    图像 选择你喜欢的图像。 本教程使用 Windows Server 2022 Datacenter:Azure Edition - x64 Gen2
    尺寸 选择 VM 大小或保留默认设置。
    管理员帐户
    用户名 输入用户名。
    密码 输入密码。
    确认密码 重新输入密码。
  4. 选择网络选项卡,或选择下一步: 磁盘,然后选择下一步: 网络

  5. 在“网络”选项卡上,选择以下值:

    设置 价值
    网络接口
    虚拟网络 选择“myVNet”。
    子网 选择“mySubnet”
    公网 IP 选择 (new) myVM-ip
    NIC 网络安全组 选择基本
    公共入站端口 选择“允许所选端口” 。
    选择入站端口 选择“RDP (3389)”。

    谨慎

    建议仅在测试情况下将 RDP 端口设置为对 Internet 开放。 在生产环境下,建议仅限某个特定的 IP 地址或 IP 地址范围才能访问 RDP 端口。 此外,还可以阻止 Internet 访问 RDP 端口,并使用 Azure Bastion 从 Azure 门户安全地连接到虚拟机。

  6. 选择“查看 + 创建”

  7. 检查设置,然后选择创建

  8. 部署完成后,选择“转到资源”以转到“myVM”的“概述”页面。

  9. 依次选择“连接”、“RDP”。

  10. 选择“下载 RDP 文件”,然后打开下载的文件。

  11. 选择”连接“,然后输入在前面步骤中创建的用户名和密码。 如果出现提示,请接受证书。

注册洞察服务商

流日志记录需要 Microsoft.Insights 提供程序。 要检查其状态,请执行以下步骤:

  1. 在门户顶部的搜索框中,输入“订阅”。 从搜索结果中选择“订阅”

  2. 在“订阅”中,选择要为其启用提供程序的 Azure 订阅

  3. 在“设置”下,选择“资源提供程序”。

  4. 在筛选器框中输入见解

  5. 确认显示的提供程序状态为“已注册”。 如果状态为“NotRegistered”,请选择“Microsoft.Insights”提供程序,然后选择“注册”。

    屏幕截图显示了如何在 Azure 门户中注册 Microsoft Insights 提供程序。

创建存储帐户

在本部分中,请创建一个用于存储流日志的存储帐户。

  1. 在门户顶部的搜索框中,输入“存储帐户”。 从搜索结果中选择“存储帐户”Storage accounts

  2. 选择+ 新建。 在“创建存储帐户”的“基本信息”选项卡中,输入或选择以下值:

    设置 价值
    项目详细信息
    订阅 选择 Azure 订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    存储帐户名称 输入唯一名称。 本教程使用 nwteststorageaccount
    区域 选择(US)美国东部。 存储帐户必须与虚拟机及其网络安全组位于同一区域。
    主要服务 选择 Azure Blob 存储或 Azure Data Lake Storage Gen 2
    性能 选择“标准” 。 流日志仅支持标准层存储帐户。
    冗余 选择首选的冗余。 本教程使用本地冗余存储(LRS)。
  3. 选择“查看”选项卡或选择底部的“查看”按钮。

  4. 检查设置,然后选择创建

创建流日志

在本部分中,将创建一个虚拟网络流日志,该日志保存到之前在本教程中创建的存储帐户中。

  1. 在门户顶部的搜索框中,输入网络监视工具。 在搜索结果中,选择“网络监视器”。

  2. 在“日志”下,选择“流日志”。

  3. 在“网络观察程序 | 流日志”,选择“+ 创建”或“创建流日志”蓝色按钮。

    屏幕截图显示了 Azure 门户中网络观察程序流日志。

  4. 在“创建流日志”中输入或选择以下值:

    设置 价值
    项目详细信息
    订阅 选择要记录的网络安全组的 Azure 订阅。
    流日志类型 选择“虚拟网络”。
    虚拟网络 选择 “+ 选择目标资源”。
    “选择虚拟网络”中,选择 myVNet。 然后,选择“确认选择”。
    流日志名称 保留 myVNet-myresourcegroup-flowlog 的默认值。
    实例详细信息
    订阅 选择存储帐户的 Azure 订阅。
    存储帐户 选择你在之前的步骤中创建的存储帐户。
    保留期(天数) 输入 10 以将存储帐户中的流日志数据保留 10 天。 若要永久保留存储帐户中的流日志数据(直到将其删除),请输入 0。 有关存储定价的详细信息,请参阅 Azure 存储定价

    在 Azure 门户中创建流日志页的屏幕截图。

    注释

    Azure 门户在 NetworkWatcherRG 资源组中创建虚拟网络流日志。

  5. 选择“查看 + 创建”

  6. 检查设置,然后选择创建

  7. 部署完成后,选择“转到资源”,确认流日志已创建并列在“流日志”页中。

    Azure 门户中“流日志”页的屏幕截图,其中显示了新创建的流日志。

  8. 返回到与 myVM 虚拟机进行的 RDP 会话。

  9. 打开 Microsoft Edge 并转到 www.bing.com

下载流日志

在本部分中,转到之前选择的存储帐户,并下载在上一部分创建的流日志。

  1. 在门户顶部的搜索框中,输入“存储帐户”。 从搜索结果中选择“存储帐户”Storage accounts

  2. 选择 nwteststorageaccount 或之前创建的存储帐户,然后选择用于存储日志。

  3. 在“数据存储”下,选择“容器”。

  4. 选择“insights-logs-flowlogflowevent”容器

  5. 在容器中,导航文件夹层次结构,直到到达 PT1H.json 要下载的文件。 虚拟网络流日志文件遵循以下路径:

    https://{storageAccountName}.blob.core.windows.net/insights-logs-flowlogflowevent/flowLogResourceID=/{subscriptionID}_NETWORKWATCHERRG/NETWORKWATCHER_{Region}_{ResourceName}-{ResourceGroupName}-FLOWLOGS/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json
    
  6. 选择 PT1H.json 文件右侧的省略号“...”,然后选择“下载”。

    显示如何在 Azure 门户中从存储帐户下载虚拟网络流日志数据的屏幕截图。

注释

可使用 Azure 存储资源管理器,从存储帐户访问和下载流日志。 有关详细信息,请参阅存储资源管理器入门

查看流日志

使用所选文本编辑器打开下载的 PT1H.json 文件。 以下示例是从下载的 PT1H.json 文件中截取的一部分,展示了由规则 DefaultRule_AllowInternetOutBound 处理的流动。

{
    "time": "2025-08-06T20:39:33.3186341Z",
    "flowLogGUID": "00000000-0000-0000-0000-000000000000",
    "macAddress": "6045BDD6DD48",
    "category": "FlowLogFlowEvent",
    "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e//RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_EASTUS/FLOWLOGS/MYVNET-MYRESOURCEGROUP-FLOWLOG",
	"flowLogVersion": 4,
    "operationName": "FlowLogFlowEvent",
    "flowRecords": {
        "flows": [
            {
				"aclID": "00000000-0000-0000-0000-000000000000",
				"flowGroups": [
					{
                        "rule": "DefaultRule_AllowInternetOutBound",
                        "flowTuples": [
                            "1754512773,10.0.0.4,13.107.21.200,49982,443,6,O,C,NX,7,1158,12,8143"                            
                        ]
                    }
                ]
            }
        ]
    }
}

flowTuples 的逗号分隔信息如下所示:

示例数据 数据代表的内容 说明
1754512773 时间戳 表示流发生时间的时间戳,采用 UNIX EPOCH 格式。 在前面的示例中,日期转换为 2025 年 8 月 6 日 08:39:33 UTC/GMT。
10.0.0.4 源 IP 地址 充当流源的源 IP 地址。 10.0.0.4 是之前创建的 VM 的专用 IP 地址。
13.107.21.200 目标 IP 地址 充当流目标的目标 IP 地址。13.107.21.200 是 www.bing.com 的 IP 地址。 因为流量要发送到 Azure 之外,所以由安全规则 DefaultRule_AllowInternetOutBound 处理这个流程。
49982 源端口 数据流起始的源端口。
443 目标端口 流量的目标端口。
6 协议 IANA 分配值中的流的第 4 层协议:6:TCP。
O 方向 流的方向。 O:出站。
C 流状态 流的状态。 C:继续执行正在进行的流。
NX 流加密 连接未加密。
7 发送的数据包 自上次更新以来,发送到目标的 TCP 数据包总数。
1158 发送的字节数 自上次更新以来,从源发送到目标的 TCP 数据包字节总数。 数据包字节包括数据包标头和有效负载。
12 收到的数据包 自上次更新以来,从目标接收到的 TCP 数据包总数。
8143 接收的字节数 自上次更新以来,从目标接接收的 TCP 数据包字节总数。 数据包字节包括数据包标头和有效负载。

清理资源

不再需要 myResourceGroup 资源组时,将其及其包含的所有资源删除:

  1. 在门户顶部的搜索框中输入 myResourceGroup。 从搜索结果中选择“myResourceGroup”。

  2. 选择“删除资源组”。

  3. 在“删除资源组”中,输入 myResourceGroup,然后选择“删除”。

  4. 选择“删除”以确认删除资源组及其所有资源。

注释

NetworkWatcher_eastus/myVNet-myresourcegroup-flowlog 资源位于 NetworkWatcherRG 资源组中,但在删除 myVNet 虚拟网络后会删除它(通过删除 myResourceGroup 资源组)。