了解如何在虚拟网络子网中创建和删除 NAT 网关资源。 NAT 网关为 Azure 虚拟网络中的资源启用出站连接。 部署后,可以更改与变更的 NAT 网关关联的公共 IP 地址和公共 IP 地址前缀。
本文介绍如何管理 NAT 网关的以下方面:
创建 NAT 网关并将其与现有子网相关联。
从现有子网中移除 NAT 网关并删除该网关。
添加或删除公共 IP 地址或公共 IP 前缀。
先决条件
若要在本文中使用 Azure PowerShell,需要:
本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。
此外,还需要运行 Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
创建 NAT 网关并将其与现有子网相关联
可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 Bicep 创建 NAT 网关资源并将其添加到现有子网。
登录到 Azure 门户。
在 Azure 门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。
选择“+ 新建”。
在“创建网络地址转换(NAT)网关”的“基本信息”选项卡中,输入或选择以下信息。
设置 |
值 |
项目详细信息 |
|
订阅 |
选择订阅。 |
资源组 |
选择你的资源组,或选择“新建”以创建新资源组。 |
实例详细信息 |
|
NAT 网关名称 |
输入 nat-gateway。 |
区域 |
选择你的区域。 此示例使用“中国北部 3”。 |
可用性区域 |
选择“无区域”。 有关 NAT 网关可用性的详细信息,请参阅 NAT 网关和可用性区域。 |
TCP 空闲超时(分钟) |
选择默认值 4。 |
选择“出站 IP”选项卡,或选择“下一步: 出站 IP” 。
可以选择现有的公共 IP 地址和/或前缀来与 NAT 网关相关联并启用出站连接。
选择“子网”选项卡,或选择“下一步: 子网”。
选择你的虚拟网络。 在此示例中,在下拉列表中选择 vnet-1。
选择 subnet-1 旁边的复选框。
选择“查看 + 创建”。
选择“创建”。
公共 IP 地址
若要创建使用公共 IP 地址的 NAT 网关,请运行以下 PowerShell 命令。
使用 New-AzPublicIpAddress 为 NAT 网关创建公共 IP 地址。
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
Location = 'chinanorth3'
Sku = 'Standard'
AllocationMethod = 'Static'
}
New-AzPublicIpAddress @ip
使用 New-AzNatGateway cmdlet 创建 NAT 网关资源并关联先前创建的公共 IP 地址。 你将使用 Set-AzVirtualNetworkSubnetConfig 为虚拟网络子网配置 NAT 网关。
## Place the virtual network into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Place the public IP address you created previously into a variable. ##
$pip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
}
$publicIP = Get-AzPublicIPAddress @pip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '4'
Sku = 'Standard'
Location = 'chinanorth3'
PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
## Create the subnet configuration. ##
$sub = @{
Name = 'subnet-1'
VirtualNetwork = $vnet
NatGateway = $natGateway
AddressPrefix = '10.0.0.0/24'
}
Set-AzVirtualNetworkSubnetConfig @sub
## Save the configuration to the virtual network. ##
$vnet | Set-AzVirtualNetwork
公共 IP 前缀
若要创建具有公共 IP 前缀的 NAT 网关,请使用以下命令。
使用 New-AzPublicIpPrefix cmdlet 为 NAT 网关创建公共 IP 前缀。
## Create public IP prefix for NAT gateway ##
$ip = @{
Name = 'public-ip-prefix-nat'
ResourceGroupName = 'test-rg'
Location = 'chinanorth3'
Sku = 'Standard'
PrefixLength ='29'
}
New-AzPublicIpPrefix @ip
使用 New-AzNatGateway cmdlet 创建 NAT 网关资源并关联先前创建的公共 IP 前缀。 你将使用 Set-AzVirtualNetworkSubnetConfig 为虚拟网络子网配置 NAT 网关。
## Place the virtual network into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Place the public IP prefix you created previously into a variable. ##
$pip = @{
Name = 'public-ip-prefix-nat'
ResourceGroupName = 'test-rg'
}
$publicIPprefix = Get-AzPublicIPPrefix @pip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = 'test-rgNAT'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '4'
Sku = 'Standard'
Location = 'chinanorth3'
PublicIpPrefix = $publicIPprefix
}
$natGateway = New-AzNatGateway @nat
## Create the subnet configuration. ##
$sub = @{
Name = 'subnet-1'
VirtualNetwork = $vnet
NatGateway = $natGateway
AddressPrefix = '10.0.0.0/24'
}
Set-AzVirtualNetworkSubnetConfig @sub
## Save the configuration to the virtual network. ##
$vnet | Set-AzVirtualNetwork
公共 IP 地址
若要创建使用公共 IP 地址的 NAT 网关,请使用以下命令。
使用 az network public-ip create 为 NAT 网关创建公共 IP 地址。
az network public-ip create \
--resource-group test-rg \
--location chinanorth3 \
--name public-ip-nat \
--sku standard
使用 az network nat gateway create 创建 NAT 网关资源并关联先前创建的公共 IP。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 4
使用 az network vnet subnet update 将 NAT 网关与虚拟网络子网相关联。
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway
公共 IP 前缀
若要创建使用公共 IP 地址前缀的 NAT 网关,请使用以下命令。
使用 az network public-ip prefix create 为 NAT 网关创建公共 IP 前缀。
az network public-ip prefix create \
--length 29 \
--resource-group test-rg \
--location chinanorth3 \
--name public-ip-prefix-nat
使用 az network nat gateway create 创建 NAT 网关资源并关联先前创建的公共 IP 地址前缀。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-prefixes public-ip-prefix-nat \
--idle-timeout 10
使用 az network vnet subnet update 将 NAT 网关与虚拟网络子网相关联。
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway
@description('Name of the NAT gateway')
param natgatewayname string = 'nat-gateway'
@description('Name of the NAT gateway public IP')
param publicipname string = 'public-ip-nat'
@description('Name of resource group')
param location string = resourceGroup().location
var existingVNetName = 'vnet-1'
var existingSubnetName = 'subnet-1'
resource vnet 'Microsoft.Network/virtualNetworks@2023-05-01' existing = {
name: existingVNetName
}
output vnetid string = vnet.id
resource publicip 'Microsoft.Network/publicIPAddresses@2023-06-01' = {
name: publicipname
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAddressVersion: 'IPv4'
publicIPAllocationMethod: 'Static'
idleTimeoutInMinutes: 4
}
}
resource natgateway 'Microsoft.Network/natGateways@2023-06-01' = {
name: natgatewayname
location: location
sku: {
name: 'Standard'
}
properties: {
idleTimeoutInMinutes: 4
publicIpAddresses: [
{
id: publicip.id
}
]
}
}
output natgatewayid string = natgateway.id
resource updatedsubnet01 'Microsoft.Network/virtualNetworks/subnets@2023-06-01' = {
parent: vnet
name: existingSubnetName
properties: {
addressPrefix: vnet.properties.subnets[0].properties.addressPrefix
natGateway: {
id: natgateway.id
}
}
}
从现有子网中删除 NAT 网关并删除资源
若要从现有子网中删除 NAT 网关,请完成以下步骤。
登录到 Azure 门户。
在 Azure 门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。
选择 nat-gateway。
在“设置”下,选择“子网”。
若要从所有子网中删除 NAT 网关,请选择“取消关联”。
若要仅从多个子网中的一个子网删除 NAT 网关,请取消选中该子网旁边的复选框,然后选择“保存”。
现在可以将该 NAT 网关与订阅中的其他子网或虚拟网络相关联。 若要删除 NAT 网关资源,请完成以下步骤。
在 Azure 门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。
选择 nat-gateway。
选择“删除”。
请选择“是”。
使用 Set-AzVirtualNetworkSubnetConfig,通过将值设置为 $null,从子网中删除 NAT 网关关联。 使用 Set-AzVirtualNetwork 更新虚拟网络配置。
# Specify the resource group and NAT gateway name
$resourceGroupName = "test-rg"
# Specify the virtual network name and subnet name
$virtualNetworkName = "vnet-1"
$subnetName = "subnet-1"
# Get the virtual network
$vnet = @{
Name = $virtualNetworkName
ResourceGroupName = $resourceGroupName
}
$virtualNetwork = Get-AzVirtualNetwork @vnet
# Get the subnet
$subnet = $virtualNetwork.Subnets | Where-Object {$_.Name -eq $subnetName}
# Remove the NAT gateway association from the subnet
$subnet.NatGateway = $null
# Update the subnet configuration
$subConfig = @{
Name = $subnetName
VirtualNetwork = $virtualNetwork
AddressPrefix = $subnet.AddressPrefix
}
Set-AzVirtualNetworkSubnetConfig @subConfig
# Update the virtual network
Set-AzVirtualNetwork -VirtualNetwork $virtualNetwork
使用 Remove-AzNatGateway 删除 NAT 网关资源。
# Specify the resource group and NAT gateway name
$resourceGroupName = "test-rg"
$natGatewayName = "nat-gateway"
$nat = @{
Name = $natGatewayName
ResourceGroupName = $resourceGroupName
}
Remove-AzNatGateway @nat
@description('Name of resource group')
param location string = resourceGroup().location
var existingVNetName = 'vnet-1'
var existingSubnetName = 'subnet-1'
resource vnet 'Microsoft.Network/virtualNetworks@2023-05-01' existing = {
name: existingVNetName
}
output vnetid string = vnet.id
resource updatedsubnet01 'Microsoft.Network/virtualNetworks/subnets@2023-06-01' = {
parent: vnet
name: existingSubnetName
properties: {
addressPrefix: vnet.properties.subnets[0].properties.addressPrefix
}
}
注意
删除 NAT 网关时,不会删除与其关联的公共 IP 地址或前缀。
添加或删除公共 IP 地址
完成以下步骤以在 NAT 网关中添加或删除公共 IP 地址。
登录到 Azure 门户。
在 Azure 门户顶部的搜索框中,输入“公共 IP 地址”。 在搜索结果中,选择“公共 IP 地址”。
选择“创建”。
在“创建公共 IP 地址”中,输入以下信息。
设置 |
值 |
订阅 |
选择订阅。 |
资源组 |
选择你的资源组。 此示例使用 test-rg。 |
区域 |
选择区域。 此示例使用“中国北部 3”。 |
名称 |
输入 public-ip-nat2。 |
IP 版本 |
选择“IPv4”。 |
SKU |
选择“标准”。 |
可用性区域 |
选择默认值“区域冗余”。 |
层 |
选择“区域”。 |
选择“查看 + 创建”,然后选择“创建”。
在 Azure 门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。
选择 nat-gateway。
在“设置”下,选择“出站 IP”。
此时会显示与 NAT 网关关联的 IP 地址和前缀。 选择“公共 IP 地址”旁边的“更改”。
在“公共 IP 地址”旁边,选择“IP 地址”下拉列表。 选择你创建的 IP 地址,将其添加到 NAT 网关。 若要删除地址,请取消选择它。
选择“确定”。
选择“保存” 。
添加公共 IP 地址
若要将公共 IP 地址添加到 NAT 网关,请将其与当前 IP 地址一起添加到数组对象。 PowerShell cmdlet 将替换所有地址。
对于本示例,与 NAT 网关关联的现有 IP 地址名为 public-ip-nat。 将此值替换为同时包含 public-ip-nat 和新 IP 地址的数组。 如果已配置多个 IP 地址,则还必须将它们添加到数组中。
使用 New-AzPublicIpAddress 为 NAT 网关创建新的 IP 地址。
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'public-ip-nat2'
ResourceGroupName = 'test-rg'
Location = 'chinanorth3'
Sku = 'Standard'
AllocationMethod = 'Static'
}
New-AzPublicIpAddress @ip
使用 Set-AzNatGateway 将公共 IP 地址添加到 NAT 网关。
## Place NAT gateway into a variable. ##
$ng = @{
Name = 'nat-gateway'
ResourceGroupName = 'test-rg'
}
$nat = Get-AzNatGateway @ng
## Place the existing public IP address associated with the NAT gateway into a variable. ##
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
}
$publicIP1 = Get-AzPublicIPaddress @ip
## Place the public IP address you created previously into a variable. ##
$ip = @{
Name = 'public-ip-nat2'
ResourceGroupName = 'test-rg'
}
$publicIP2 = Get-AzPublicIPaddress @ip
## Place the public IP address variables into an array. ##
$pipArray = $publicIP1,$publicIP2
## Add the IP address to the NAT gateway. ##
$nt = @{
NatGateway = $nat
PublicIpAddress = $pipArray
}
Set-AzNatGateway @nt
删除公共 IP 地址
若要从 NAT 网关中删除公共 IP,必须创建一个数组对象,其中不包含你要删除的 IP 地址。 例如,假设你为 NAT 网关配置了两个公共 IP 地址。 你想要删除其中一个 IP 地址。 与 NAT 网关关联的 IP 地址分别命名为 public-ip-nat 和 public-ip-nat2。 若要删除 public-ip-nat2,需要为 PowerShell 命令创建一个仅包含 public-ip-nat 的数组对象。 应用该命令时,该数组将重新应用于 NAT 网关,这样,public-ip-nat 就成了唯一一个关联的公共 IP 地址。
使用 Set-AzNatGateway 从 NAT 网关中删除公共 IP 地址。
## Place NAT gateway into a variable. ##
$ng = @{
Name = 'nat-gateway'
ResourceGroupName = 'test-rg'
}
$nat = Get-AzNatGateway @ng
## Place the existing public IP address associated with the NAT gateway into a variable. ##
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
}
$publicIP1 = Get-AzPublicIPaddress @ip
## Place the second public IP address into a variable. ##
$ip = @{
Name = 'public-ip-nat2'
ResourceGroupName = 'test-rg'
}
$publicIP2 = Get-AzPublicIPAddress @ip
## Place ONLY the public IP you wish to keep in the array. ##
$pipArray = $publicIP1
## Add the public IP address to the NAT gateway. ##
$nt = @{
NatGateway = $nat
PublicIpAddress = $pipArray
}
Set-AzNatGateway @nt
添加公共 IP 地址
对于本示例,与 NAT 网关关联的现有公共 IP 地址名为 public-ip-nat。
使用 az network public-ip create 为 NAT 网关创建新的 IP 地址。
az network public-ip create \
--resource-group test-rg \
--location chinanorth3 \
--name public-ip-nat2 \
--sku standard
使用 az network nat gateway update 将先前创建的公共 IP 地址添加到 NAT 网关。 Azure CLI 命令会替换这些值。 它不会添加新值。 若要将新 IP 地址添加到 NAT 网关,还必须添加与 NAT 网关关联的任何其他 IP 地址。
az network nat gateway update \
--name nat-gateway \
--resource-group test-rg \
--public-ip-addresses public-ip-nat public-ip-nat2
删除公共 IP 地址
使用 az network nat gateway update 从 NAT 网关中删除公共 IP 地址。 Azure CLI 命令会替换这些值。 它不会删除值。 要删除公共 IP 地址,请在命令中添加要保留的所有 IP 地址。 省略要删除的值。 例如,假设你为 NAT 网关配置了两个公共 IP 地址。 你想要删除其中一个 IP 地址。 与 NAT 网关关联的 IP 地址分别命名为 public-ip-nat 和 public-ip-nat2。 若要删除 public-ip-nat2,必须在命令中省略该 IP 地址的名称。 该命令会将其中列出的 IP 地址重新应用于 NAT 网关。 它会删除所有未列出的 IP 地址。
az network nat gateway update \
--name nat-gateway \
--resource-group test-rg \
--public-ip-addresses public-ip-nat
使用 Azure 门户、Azure PowerShell 或 Azure CLI 在 NAT 网关中添加或删除公共 IP 地址。
添加或删除公共 IP 前缀
完成以下步骤以在 NAT 网关中添加或删除公共 IP 前缀。
登录到 Azure 门户。
在 Azure 门户顶部的搜索框中,输入“公共 IP 前缀”。 在搜索结果中选择“公共 IP 前缀”。
选择“创建”。
在“创建公共 IP 前缀”的“基本信息”选项卡中,输入以下信息。
设置 |
值 |
项目详细信息 |
|
订阅 |
选择订阅。 |
资源组 |
选择你的资源组。 此示例使用 test-rg。 |
实例详细信息 |
|
名称 |
输入 public-ip-prefix-nat。 |
区域 |
选择你的区域。 此示例使用“中国北部 3”。 |
IP 版本 |
选择“IPv4”。 |
前缀大小 |
选择前缀大小。 此示例使用 /28 (16 个地址)。 |
依次选择“查看 + 创建”、“创建”。
在 Azure 门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。
选择 nat-gateway。
在“设置”下,选择“出站 IP”。
此时会显示与 NAT 网关关联的 IP 地址和前缀。 选择“公共 IP 前缀”旁边的“更改”。
选择“公共 IP 前缀”旁边的下拉框。 选择你创建的 IP 地址前缀,将其添加到 NAT 网关。 若要删除前缀,请取消选中它。
选择“确定”。
选择“保存” 。
添加公共 IP 前缀
若要将公共 IP 地址前缀添加到 NAT 网关,请将其与当前 IP 地址前缀一起添加到数组对象。 PowerShell cmdlet 将替换所有 IP 地址前缀。
对于本示例,与 NAT 网关关联的现有公共 IP 前缀名为 public-ip-prefix-nat。 将此值替换为同时包含 public-ip-prefix-nat 和新 IP 地址前缀的数组。 如果已配置多个 IP 地址前缀,则还必须将它们添加到数组中。
使用 New-AzPublicIpPrefix 为 NAT 网关创建新的公共 IP 前缀。
## Create public IP prefix for NAT gateway ##
$ip = @{
Name = 'public-ip-prefix-nat2'
ResourceGroupName = 'test-rg'
Location = 'chinanorth3'
Sku = 'Standard'
PrefixLength = '29'
}
New-AzPublicIpPrefix @ip
使用 Set-AzNatGateway 将公共 IP 前缀添加到 NAT 网关。
## Place NAT gateway into a variable. ##
$ng = @{
Name = 'nat-gateway'
ResourceGroupName = 'test-rg'
}
$nat = Get-AzNatGateway @ng
## Place the existing public IP prefix associated with the NAT gateway into a variable. ##
$ip = @{
Name = 'public-ip-prefix-nat'
ResourceGroupName = 'test-rg'
}
$prefixIP1 = Get-AzPublicIPPrefix @ip
## Place the public IP prefix you created previously into a variable. ##
$ip = @{
Name = 'public-ip-prefix-nat2'
ResourceGroupName = 'test-rg'
}
$prefixIP2 = Get-AzPublicIPprefix @ip
## Place the public IP address variables into an array. ##
$preArray = $prefixIP1,$prefixIP2
## Add the IP address prefix to the NAT gateway. ##
$nt = @{
NatGateway = $nat
PublicIpPrefix = $preArray
}
Set-AzNatGateway @nt
删除公共 IP 前缀
若要从 NAT 网关中删除公共 IP 前缀,必须创建一个数组对象,其中不包含你要删除的 IP 地址前缀。 例如,假设你为 NAT 网关配置了两个公共 IP 前缀。 你想要删除其中一个 IP 前缀。 与 NAT 网关关联的 IP 前缀分别命名为 public-ip-prefix-nat 和 public-ip-prefix-nat2。 若要删除 public-ip-prefix-nat2,需要为 PowerShell 命令创建一个仅包含 public-ip-prefix-nat 的数组对象。 应用该命令时,该数组将重新应用于 NAT 网关,这样,public-ip-prefix-nat 就成了唯一一个关联的前缀。
使用 Set-AzNatGateway cmdlet 从 NAT 网关中删除公共 IP 前缀。
## Place NAT gateway into a variable. ##
$ng = @{
Name = 'nat-gateway'
ResourceGroupName = 'test-rg'
}
$nat = Get-AzNatGateway @ng
## Place the existing public IP prefix associated with the NAT gateway into a variable. ##
$ip = @{
Name = 'public-ip-prefix-nat'
ResourceGroupName = 'test-rg'
}
$prefixIP1 = Get-AzPublicIPPrefix @ip
## Place the secondary public IP prefix into a variable. ##
$ip = @{
Name = 'public-ip-prefix-nat2'
ResourceGroupName = 'test-rg'
}
$prefixIP2 = Get-AzPublicIPprefix @ip
## Place ONLY the prefix you wish to keep in the array. DO NOT ADD THE SECONDARY VARIABLE ##
$preArray = $prefixIP1
## Add the IP address prefix to the NAT gateway. ##
$nt = @{
NatGateway = $nat
PublicIpPrefix = $preArray
}
Set-AzNatGateway @nt
添加公共 IP 前缀
对于本示例,与 NAT 网关关联的现有公共 IP 前缀名为 public-ip-prefix-nat。
使用 az network public-ip prefix create 为 NAT 网关创建公共 IP 前缀。
az network public-ip prefix create \
--length 29 \
--resource-group test-rg \
--location chinanorth3 \
--name public-ip-prefix-nat2
使用 az network nat gateway update 将先前创建的公共 IP 前缀添加到 NAT 网关。 Azure CLI 命令会替换这些值。 它不会添加值。 若要将新 IP 地址前缀添加到 NAT 网关,还必须包括与 NAT 网关关联的所有其他 IP 前缀。
az network nat gateway update \
--name nat-gateway \
--resource-group test-rg \
--public-ip-prefixes public-ip-prefix-nat public-ip-prefix-nat2
删除公共 IP 前缀
使用 az network nat gateway update 从 NAT 网关中删除公共 IP 前缀。 Azure CLI 命令会替换这些值。 它不会删除值。 若要删除公共 IP 前缀,必须在命令中包含你要保留的所有前缀。 省略要删除的那个。 例如,假设你为 NAT 网关配置了两个公共 IP 前缀。 你想要删除其中一个前缀。 与 NAT 网关关联的 IP 前缀分别命名为 public-ip-prefix-nat 和 public-ip-prefix-nat2。 若要删除 public-ip-prefix-nat2,必须在命令中省略该 IP 前缀的名称。 该命令会将其中列出的 IP 前缀重新应用于 NAT 网关。 它会删除所有未列出的 IP 地址。
az network nat gateway update \
--name nat-gateway \
--resource-group test-rg \
--public-ip-prefixes public-ip-prefix-nat
使用 Azure 门户、Azure PowerShell 或 Azure CLI 在 NAT 网关中添加或删除公共 IP 前缀。
后续步骤
若要详细了解 Azure 虚拟网络 NAT 及其功能,请参阅以下文章: