教程:使用 Azure 门户创建多个虚拟机入站 NAT 规则

入站 NAT 规则使你可以使用 Azure 负载均衡器公共 IP 地址和端口号连接到 Azure 虚拟网络中的虚拟机 (VM)。

有关 Azure 负载均衡器规则的详细信息,请参阅使用 Azure 门户管理 Azure 负载均衡器的规则

在本教程中,你将了解如何:

  • 创建虚拟网络和虚拟机
  • 创建具有前端 IP、运行状况探测、后端配置和负载均衡规则的标准 SKU 公共负载均衡器
  • 创建多 VM 入站 NAT 规则
  • 为后端池的出站 Internet 访问创建 NAT 网关
  • 在 VM 上安装和配置 Web 服务器,以演示端口转发和负载均衡规则

先决条件

创建虚拟网络和虚拟机

本教程中的资源需要用到虚拟网络和子网。 在本部分中,你将为后续步骤创建虚拟网络和虚拟机。

  1. 登录 Azure 门户

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

  3. 在“虚拟机”中,选择“+ 创建”>“+ 虚拟机”。

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

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    输入“TutorialLBPF-rg”。
    选择“确定”。
    实例详细信息
    虚拟机名称 输入“myVM1”。
    区域 输入“中国北部 3”。
    可用性选项 选择“可用性区域”。
    可用性区域 输入 1
    安全类型 选择“标准”。
    映像 选择“Ubuntu Server 20.04 LTS - Gen1”。
    大小 选择 VM 大小。
    管理员帐户
    身份验证类型 选择“SSH 公钥”。
    用户名 输入“azureuser”。
    SSH 公钥源 选择“生成新密钥对”。
    密钥对名称 输入“myKey”。
    入站端口规则
    公共入站端口 选择“无”。
  5. 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”。

  6. 在“网络”中,输入或选择以下信息。

    设置
    网络接口
    虚拟网络 选择“新建”。
    在“名称”中输入“myVNet” 。
    在“地址空间”的“地址范围”下,输入 10.1.0.0/16 。
    在“子网”的“子网名称”下,输入“myBackendSubnet” 。
    在“地址范围”中,输入 10.1.0.0/24 。
    选择“确定”。
    子网 选择“myBackendSubnet”。
    公共 IP 选择“无”。
    NIC 网络安全组 选择“高级”。
    配置网络安全组 选择“新建”。
    在“名称”中,输入“myNSG” 。
    在“入站规则”下,选择“+ 添加入站规则” 。
    在“服务”中,选择“HTTP” 。
    在“优先级”中,输入 100。
    在“名称”中,输入“myNSGRule” 。
    选择 添加
    选择“确定”。
  7. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮 。

  8. 选择“创建”。

  9. 在“生成新密钥对”提示下,选择“下载私钥并创建资源” 。 下载的密钥文件名为 myKey.pem。 确保你知道 .pem 文件的下载位置,在后面的步骤中需要使用密钥文件的路径。

  10. 按照步骤 1 到 8 操作,使用以下值创建另一个 VM,所有其他设置均与 myVM1 相同:

    设置 VM 2
    基础知识
    实例详细信息
    虚拟机名称 myVM2
    可用性区域 2
    管理员帐户
    身份验证类型 SSH 公钥
    SSH 公钥源 选择“使用 Azure 中存储的现有密钥”。
    已存储密钥 选择“myKey”。
    入站端口规则
    公共入站端口 选择“无”。
    联网
    网络接口
    公共 IP 选择“无”。
    NIC 网络安全组 选择“高级”。
    配置网络安全组 选择现有的“myNSG”

创建负载均衡器

在本部分中,你将创建负载均衡器。 创建过程中将配置前端 IP、后端池、负载均衡和入站 NAT 规则。

  1. 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。

  2. 在“负载均衡器”页上,选择“创建” 。

  3. 在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“TutorialLBPF-rg”。
    实例详细信息
    名称 输入“myLoadBalancer”
    区域 选择“中国北部 2”。
    SKU 保留默认值“标准”。
    类型 选择“公共”。
    保留默认值“区域”。
  4. 在页面底部选择“下一步: 前端 IP 配置”。

  5. 在“前端 IP 配置”中,选择“+ 添加前端 IP” 。

  6. 在“名称”中输入“myFrontend”。

  7. 对于“IP 版本”,选择“IPv4”或“IPv6” 。

  8. 对于“IP 类型”,选择“IP 地址” 。

    注意

    有关 IP 前缀的详细信息,请参阅 Azure 公共 IP 前缀

  9. 在“公共 IP 地址”中选择“新建” 。

  10. 在“添加公共 IP”的“名称”中输入“myPublicIP” 。

  11. 在“可用性区域”中选择“区域冗余” 。

    注意

    在提供可用性区域设置的区域中,可以选择无区域(默认选项)、特定区域或区域冗余。 请根据特定的域故障要求做出选择。 在不提供“可用性区域”设置的区域中,不会显示此字段。
    有关可用性区域的详细信息,请参阅可用性区域概述

  12. 选择“确定” 。

  13. 选择 添加

  14. 在页面底部选择“下一步: 后端池”。

  15. 在“后端池”选项卡上,选择“+ 添加后端池” 。

  16. 在“添加后端池”中,输入或选择以下信息。

    设置
    名称 输入“myBackendPool”。
    虚拟网络 选择“myVNet (TutorialLBPF-rg)”。
    后端池配置 选择“NIC”。
    IP 版本 选择“IPv4”。
  17. 在“虚拟机”中,选择“+ 添加”。

  18. 在“向后端池添加虚拟机”中,选中 myVM1 和 myVM2 旁边的复选框 。

  19. 选择 添加

  20. 选择 添加

  21. 选择页面底部的“下一步: 入站规则”按钮。

  22. 在“入站规则”选项卡的“负载均衡规则”中,选择“+ 添加负载均衡规则” 。

  23. 在“添加负载均衡规则”中,输入或选择以下信息。

    设置
    名称 输入“myHTTPRule”
    IP 版本 根据你的要求选择“IPv4”或“IPv6” 。
    前端 IP 地址 选择“myFrontend”。
    后端池 选择“myBackendPool”。
    协议 选择“TCP”。
    端口 输入 80
    后端端口 输入 80
    运行状况探测 选择“新建”。
    在“名称”中,输入 myHealthProbe 。
    在“协议”中选择 TCP 。
    将剩余的字段保留默认设置,然后选择“确定”。
    会话暂留 选择“无”。
    空闲超时(分钟) 输入或选择“15”。
    TCP 重置 选择“启用”。
    浮动 IP 选择“已禁用”。
    出站源网络地址转换 (SNAT) 保留默认值“(建议)使用出站规则为后端池成员提供对 Internet 的访问权限。”

    有关负载均衡规则的详细信息,请参阅负载均衡规则

  24. 选择 添加

  25. 选择页面底部的“查看 + 创建”蓝色按钮。

  26. 选择“创建”。

创建多 VM 入站 NAT 规则

在本部分中,将创建一个负载均衡器后端池的多实例入站 NAT 规则。

  1. 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。

  2. 选择“myLoadBalancer”。

  3. 在“myLoadBalancer”中,选择“设置”中的“入站 NAT 规则”。

  4. 在“入站 NAT 规则”中选择“+ 添加”。

  5. 在“添加入站 NAT 规则”中,输入或选择以下信息。

    设置
    名称 输入“myNATRule-SSH”。
    类型 选择“后端池”。
    目标后端池 选择“myBackendPool”。
    前端 IP 地址 选择“myFrontend”。
    前端端口范围起始 输入 221。
    后端池中的最大虚拟机数 输入 500。
    后端端口 输入 22。
    协议 选择“TCP”。
  6. 将其余字段保留默认设置,然后选择“添加”。

注意

若要查看后端池虚拟机的端口映射,请参阅查看端口映射

创建 NAT 网关

在本部分中,你将为虚拟网络中的资源创建用于出站 Internet 访问的 NAT 网关。

有关出站连接和 Azure 虚拟网络 NAT 的详细信息,请参阅对出站连接使用源网络地址转换 (SNAT)什么是虚拟网络 NAT?

  1. 在门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。

  2. 在“NAT 网关”中,选择“+ 创建” 。

  3. 在“创建网络地址转换(NAT)网关”中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“TutorialLBPF-rg”。
    实例详细信息
    NAT 网关名称 输入 myNATGateway。
    区域 选择“中国北部 2”。
    可用性区域 选择“无”。
    空闲超时(分钟) 输入 15
  4. 选择“出站 IP”选项卡,或者选择“下一步: 出站 IP”按钮(位于页面底部) 。

  5. 在“出站 IP”选项卡中,选择“公共 IP 地址”旁边的“创建新的公共 IP 地址” 。

  6. 在“添加公共 IP 地址”的“名称”中输入“myNATGatewayIP” 。

  7. 选择“确定”。

  8. 选择“子网”选项卡,或者选择“下一步: 子网”按钮(位于页面底部) 。

  9. 在“子网”选项卡的“虚拟网络”中,选择“myVNet” 。

  10. 在“子网名称”下选择“myBackendSubnet”。

  11. 选择页面底部的“查看 + 创建”按钮,或选择“查看 + 创建”选项卡 。

  12. 选择“创建”。

安装 Web 服务器

在本部分中,你将根据入站 NAT 规则通过 SSH 连接到虚拟机,并安装 Web 服务器。

  1. 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。

  2. 选择“myLoadBalancer”。

  3. 在“设置”中,选择“前端 IP 配置”。

  4. 在“前端 IP 配置”中,记下“myFrontend”的“IP 地址”。 在本示例中,它为 20.99.165.176。

    Screenshot of public IP in Azure portal.

  5. 如果使用的是 Mac 或 Linux 计算机,请打开 Bash 提示符。 如果使用的是 Windows 计算机,请打开 PowerShell 提示符。

  6. 在提示符下,通过 SSH 连接到 myVM1。 将 IP 地址替换为前面步骤中检索到的地址以及用于 myVM1 入站 NAT 规则的端口 221。 将 .pem 的路径替换为密钥文件下载位置的路径。

    ssh -i .\Downloads\myKey.pem azureuser@20.99.165.176 -p 221
    

    提示

    下次在 Azure 中创建 VM 时,可以使用此次创建的 SSH 密钥。 下次创建 VM 时,只需为“SSH 公钥源”选择“使用存储在 Azure 中的密钥” 。 你的计算机上已有私钥,因此无需下载任何内容。

  7. 在 SSH 会话中更新包源,然后安装最新的 NGINX 包。

    sudo apt-get -y update
    sudo apt-get -y install nginx
    
  8. 输入 Exit 退出 SSH 会话

  9. 在提示符下,通过 SSH 连接到 myVM2。 将 IP 地址替换为前面步骤中检索到的地址以及用于 myVM2 入站 NAT 规则的端口 222。 将 .pem 的路径替换为密钥文件下载位置的路径。

    ssh -i .\Downloads\myKey.pem azureuser@20.99.165.176 -p 222
    
  10. 在 SSH 会话中更新包源,然后安装最新的 NGINX 包。

    sudo apt-get -y update
    sudo apt-get -y install nginx
    
  11. 输入 Exit 退出 SSH 会话。

测试 Web 服务器

你将在本部分中打开 Web 浏览器,输入前面步骤中检索到的负载均衡器的 IP 地址。

  1. 打开 Web 浏览器。

  2. 在地址栏中,输入负载均衡器的 IP 地址。 在本示例中,它为 20.99.165.176。

  3. 系统将显示默认的 NGINX 网站。

    Screenshot of testing the NGINX web server.

清理资源

如果你不打算继续使用此应用程序,请按以下步骤删除虚拟机和负载均衡器:

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

  2. 在“资源组”中选择“TutorialLBPF-rg”。

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

  4. 在“键入资源组名称:”中输入“TutorialLBPF-rg” 。 选择“删除”。