你当前正在访问 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. 选择”连接“,然后输入在前面步骤中创建的用户名和密码。 如果出现提示,请接受证书。

注册 Insights 提供程序

流日志记录要求使用 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 资源组)后删除