你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在一个 Azure 虚拟机 (VM) 上可以附加一个或多个网络接口 (NIC)。 可为任何 NIC 分配一个或多个静态/动态的公共和专用 IP 地址。
为 VM 分配多个 IP 地址可实现以下功能:
- 在一台服务器上托管具有不同 IP 地址和 TLS/SSL 证书的多个网站或服务。
- 用作网络虚拟设备,例如防火墙或负载均衡器。
- 可将 NIC 的任何专用(主要或辅助)IP 地址添加到 Azure 负载均衡器后端池。 有关负载均衡多个 IP 配置的详细信息,请参阅负载均衡多个 IP 配置和出站规则。
附加到 VM 的每个 NIC 都具有一个或多个关联的 IP 配置。 系统会为每个配置分配一个静态或动态专用 IP 地址。 每个配置还可以具有一个关联的公共 IP 地址资源。 若要详细了解 Azure 中的 IP 地址,请参阅 Azure 中的 IP 地址。
Note
单个 NIC 上的所有 IP 配置都必须关联到同一子网。 如果需要不同子网上的多个 IP,可以使用 VM 上的多个 NIC。 若要详细了解 Azure 中 VM 上的多个 NIC,请参阅创建具有多个 NIC 的 VM。
分配给 NIC 的专用 IP 地址数目存在限制。 能够在 Azure 订阅中使用的公共 IP 地址数也存在限制。 有关详细信息,请参阅 Azure 限制 文章。
本文介绍如何使用 Azure 门户将多个 IP 地址添加到虚拟机。
Note
如果要创建具有多个 IP 地址或静态专用 IP 地址的虚拟机,则必须使用 PowerShell 或 Azure CLI 创建它。
Prerequisites
具有活动订阅的 Azure 帐户。 免费创建帐户。
具有公共 IP 的现有 Azure 虚拟机。 有关创建虚拟机的详细信息,请参阅创建 Windows VM 或创建 Linux VM。
- 本文中使用的示例名为 myVM。 将此值替换为虚拟机名称。
- Windows Server 虚拟机需要为远程桌面协议(RDP)连接打开端口 3389 。 Linux 虚拟机需要为安全外壳(SSH)连接打开端口 22 。
部署在虚拟机所在的同一子网中用于 VM 管理的 Azure Bastion 实例。 有关详细信息,请参阅自动部署 Azure Bastion
Note
尽管本文是将所有 IP 配置分配到单个 NIC,但也可以将多个 IP 配置分配到具有多个 NIC 的 VM 中的任意 NIC。 若要了解如何创建具有多个 NIC 的 VM,请参阅创建具有多个 NIC 的 VM。
图:此操作说明文章中创建的网络配置资源的示意图。
将公共 IP 地址和专用 IP 地址添加到 VM
可以通过完成以下步骤将专用 IP 地址和公共 IP 地址添加到 Azure 网络接口。
登录到 Azure 门户。
在门户顶部的搜索框中,输入 虚拟机。 在搜索结果中,选择“虚拟机”。
在 虚拟机中,选择 myVM 或虚拟机的名称。
在“网络”下选择“网络设置”。
在 “网络设置”中,在“网络接口 /IP 配置 ”下拉菜单中选择虚拟机的网络接口名称和 IP 配置的名称。 现有 IP 配置随即显示。 在此示例中,其名为 myvm138_z1 (primary) / ipconfig1 (primary)。
在 IP 配置 中,若要向虚拟机添加专用和公共 IP 地址,请选择“ + 添加”。
在“添加 IP 配置”中,输入或选择以下信息。
Setting Value Name 输入 ipconfig2。 专用 IP 地址设置 Allocation 选择 “静态”。 专用 IP 地址 在网络中为虚拟机输入未使用的地址。
对于示例中的 10.1.0.0/24 子网,IP 将为 10.1.0.5。公共 IP 地址 选择“关联公共 IP 地址” 公共 IP 地址 选择“创建公共 IP 地址”。
在名称中输入 public-ip-02。
在 SKU 中选择“标准”。
选择“确定”。选择“确定”。
Note
在添加静态 IP 地址时,必须在 NIC 连接到的子网中指定未使用的有效地址。
Important
更改 IP 地址配置后,必须重启 VM,更改才能在 VM 中生效。
将专用 IP 地址添加到 VM
可以通过完成以下步骤将专用 IP 地址添加到虚拟机。
登录到 Azure 门户。
在门户顶部的搜索框中,输入 虚拟机。 在搜索结果中,选择“虚拟机”。
在 虚拟机中,选择 myVM 或虚拟机的名称。
在“设置”中选择“网络”。
选择虚拟机的网络接口的名称。 在此示例中,它命名 为myvm889_z1。
在网络接口中,在“设置”中选择 IP 配置。
现有 IP 配置随即显示。 创建虚拟机时会创建此配置。 若要向虚拟机添加专用和公共 IP 地址,请选择“ + 添加”。
在“添加 IP 配置”中,输入或选择以下信息。
Setting Value Name 输入 ipconfig3。 专用 IP 地址设置 Allocation 选择 “静态”。 IP 地址 在网络中为虚拟机输入未使用的地址。
对于示例中的 10.1.0.0/24 子网,IP 将为 10.1.0.6。选择“确定”。
Note
在添加静态 IP 地址时,必须在 NIC 连接到的子网中指定未使用的有效地址。
Important
更改 IP 地址配置后,必须重启 VM,更改才能在 VM 中生效。
将 IP 地址添加到 VM 操作系统
连接并登录到使用多个专用 IP 地址创建的 VM。 必须手动添加 VM 中的所有专用 IP 地址,包括主要地址。 根据 VM 操作系统完成以下步骤。
Windows Server
扩大
打开命令提示符或 PowerShell。
在命令行中输入
ipconfig /all。 可以看到通过 DHCP 分配的主专用 IP 地址。在命令行中输入
ncpa.cpl以打开 网络连接 配置。打开分配了新 IP 地址的网络适配器 的属性 。
双击“Internet 协议第四版(TCP/IPv4)”。
选择“使用以下 IP 地址:”。 输入以下值。
Setting Value IP地址: 输入 主 专用 IP 地址。 子网掩码: 根据 IP 地址输入子网掩码。
例如,如果子网是 /24 子网,则子网掩码为 255.255.255.0。默认网关: 子网中的第一个 IP 地址。
如果子网为 10.0.0.0/24,则网关 IP 地址为 10.0.0.1。选择“使用以下 DNS 服务器地址:”。 输入以下值。
Setting Value 首选 DNS 服务器: 输入主 DNS 服务器。
输入 168.63.129.16 的 IP 地址,以使用默认的 Azure 提供的 DNS。选择“ 高级 ”按钮。
选择 并添加。
输入添加到 Azure 网络接口的专用 IP 地址 。 输入相应的 子网掩码。 选择 并添加。
重复上述步骤,添加添加到 Azure 网络接口的任何更多专用 IP 地址。
Important
切勿在虚拟机的操作系统中手动分配已分配给 Azure 虚拟机的公共 IP 地址。 在操作系统中手动设置该 IP 地址时,请确保它与分配给 Azure 网络接口的专用 IP 地址是同一地址。 未能正确分配地址可能会导致与虚拟机的连接丢失。 有关详细信息,请参阅更改 IP 地址设置。
有关专用 IP 地址的详细信息,请参阅专用 IP 地址。
选择 “确定” 关闭辅助 IP 地址设置。
选择 “确定 ”关闭适配器设置。 将重新建立 RDP 连接。
打开命令提示符或 PowerShell。
在命令行中输入
ipconfig /all。验证配置中是否存在主要和辅助专用 IP 地址。
PS C:\Users\azureuser> ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : myVM Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter Ethernet: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter Physical Address. . . . . . . . . : 00-0D-3A-E6-CE-A3 DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::a8d1:11d5:3ab2:6a51%5(Preferred) IPv4 Address. . . . . . . . . . . : 10.1.0.4(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.5(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.1.0.1 DHCPv6 IAID . . . . . . . . . . . : 100666682 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-A8-26-B1-00-0D-3A-E6-CE-A3 DNS Servers . . . . . . . . . . . : 168.63.129.16 NetBIOS over Tcpip. . . . . . . . : Enabled确保 Windows 中使用的主专用 IP 地址与 Azure VM 网络接口的主 IP 地址相同。 有关详细信息,请参阅无法通过具有多个 IP 地址的 Azure Windows VM 访问 Internet。
验证 (Windows Server)
若要验证通过公共 IP 从辅助 IP 配置到 Internet 的连接,请使用以下命令。 将 10.1.0.5 替换为添加到 Azure VM 网络接口的辅助专用 IP 地址。
ping -S 10.1.0.5 outlook.com
Note
对于辅助 IP 配置,仅当该配置存在关联的公共 IP 地址的情况下,才能 ping Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping Internet。
SUSE Linux Enterprise 和 openSUSE
扩大
基于 SUSE 的分发版使用cloud-netconfig 包中的 cloud-netconfig-azure 插件来管理 IP 配置。 管理员不需要进行任何手动操作。 平台上设置的接口的第一个 IP 地址是通过 DHCP 分配的。 然后,cloud-netconfig 插件会持续(每分钟一次)探测 Azure 实例元数据服务 API,以获取分配给接口的更多 IP 地址,并自动将其添加/删除为辅助 IP 地址。
默认情况下,应在新映像上安装和启用此插件。 可在此处找到旧工作负载的配置步骤:https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/。
Ubuntu 14/16
扩大
我们建议你查看 Linux 分发版的最新文档。
打开终端窗口。
请确保以根用户身份操作。 否则,请输入以下命令:
sudo -i更新网络接口的配置文件(假设为“eth0”。
保留 dhcp 的现有行项。 主要 IP 地址将保留以前的配置。
使用以下命令为另一个静态 IP 地址添加配置:
cd /etc/network/interfaces.d/ ls应会看到一个 .cfg 文件。
打开 文件。 该文件的末尾应会显示以下命令行:
auto eth0 iface eth0 inet dhcp在此文件包含的命令行后面添加以下命令行。 将
10.1.0.5替换为专用 IP 地址和子网掩码。iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0若要添加其他专用 IP 地址,请编辑该文件,并在后续行中添加新的专用 IP 地址:
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0使用以下命令保存该文件:
:wq使用以下命令重置网络接口:
ifdown eth0 && ifup eth0Important
如果使用远程连接,请在同一行中同时执行 ifdown 和 ifup。
使用以下命令验证 IP 地址是否已添加到网络接口:
ip addr list eth0应会在列表中看到添加的 IP 地址。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
验证 (Ubuntu 14/16)
若要确保能够从辅助 IP 配置通过与之关联的公共 IP 连接到 Internet,请使用以下命令:
ping -I 10.1.0.5 outlook.com
Note
对于辅助 IP 配置,仅当该配置存在关联的公共 IP 地址的情况下,才能 ping Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping Internet。
对于 Linux VM,在尝试验证来自辅助 NIC 的出站连接时,可能需要添加适当的路由。 请参阅针对 Linux 分发的相应文档。 实现此目标的以下方法:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
请务必替换以下内容:
10.1.0.5 替换为专用 IP 地址,该地址有一个与之关联的公共 IP 地址
将 10.1.0.1 设置为默认网关
eth2 替换为辅助 NIC 的名称
Ubuntu 18.04+
扩大
从 18.04 开始, netplan Ubuntu 中用于网络管理。 我们建议你查看 Linux 分发版的最新文档。
打开终端窗口。
请确保以根用户身份操作。 否则,请输入以下命令:
sudo -i为第二个接口创建一个文件,并在文本编辑器打开该文件:
vi /etc/netplan/60-static.yaml将以下行添加到文件中,并将
10.1.0.5/24替换为 IP 和子网掩码:network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24若要添加专用 IP 地址,请编辑该文件,并在后续行中添加新的专用 IP 地址:
network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24 - 10.1.0.6/24使用以下命令保存该文件:
:wq使用 netplan try 测试更改以确认语法。
netplan tryNote
netplan try将暂时应用更改,并在 120 秒后回退更改。 如果连接丢失,请等待 2 分钟,然后重新连接。 此时更改已回退。假设
netplan try没有问题,请应用配置更改:netplan apply使用以下命令验证 IP 地址是否已添加到网络接口:
ip addr list eth0应会在列表中看到添加的 IP 地址。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
验证 (Ubuntu 18.04+)
若要确保能够从辅助 IP 配置通过与之关联的公共 IP 连接到 Internet,请使用以下命令:
ping -I 10.1.0.5 outlook.com
Note
对于辅助 IP 配置,仅当该配置存在关联的公共 IP 地址的情况下,才能 ping Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping Internet。
对于 Linux VM,在尝试验证来自辅助 NIC 的出站连接时,可能需要添加适当的路由。 请遵循您所用 Linux 发行版的相关文档进行操作。 以下方法是实现此目标的一种方法:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
请确保将:
10.1.0.5 替换为专用 IP 地址,该地址有一个与之关联的公共 IP 地址
将 10.1.0.1 设置为默认网关
eth2 替换为辅助 NIC 的名称
Red Hat Enterprise Linux 及其他
扩大
Note
若要在 RHEL10.x 中配置额外的 IP 地址,只需重启 NetworkManager systemctl restart NetworkManger.service 或者重新启动系统。 无需执行其他步骤。
打开终端窗口。
请确保以根用户身份操作。 否则,请输入以下命令:
sudo -i输入密码,根据提示的说明操作。 成为 root 用户后,使用以下命令转到网络脚本文件夹:
cd /etc/sysconfig/network-scripts使用以下命令列出相关的 ifcfg 文件:
ls ifcfg-*应会看到 ifcfg-eth0 作为其中一个文件。
为添加到系统的每个 IP 创建新的配置文件。
touch ifcfg-eth0:0使用以下命令打开 ifcfg-eth0:0 文件:
vi ifcfg-eth0:0在本例中,使用以下命令将内容添加到文件 eth0:0 。 将
10.1.0.5替换为您的新专用 IP 地址和子网掩码。DEVICE=eth0:0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.5 NETMASK=255.255.255.0使用以下命令保存该文件:
:wq为每个 IP 地址创建配置文件,以添加相应的值:
touch ifcfg-eth0:1vi ifcfg-eth0:1DEVICE=eth0:1 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.6 NETMASK=255.255.255.0:wq运行以下命令重新启动网络服务,确保更改成功:
systemctl restart NetworkManager.service ifconfig应会在返回的列表中看到添加的 IP 地址。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.4 netmask 255.255.255.0 broadcast 10.1.0.255 inet6 fe80::6245:bdff:fe7d:704a prefixlen 64 scopeid 0x20<link> ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) RX packets 858 bytes 244215 (238.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1021 bytes 262077 (255.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.5 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.6 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet)
验证(Red Hat 和其他)
若要确保能够从辅助 IP 配置通过与之关联的公共 IP 连接到 Internet,请使用以下命令:
ping -I 10.0.0.5 outlook.com
Note
对于辅助 IP 配置,仅当该配置存在关联的公共 IP 地址的情况下,才能 ping Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping Internet。
对于 Linux VM,在尝试验证来自辅助 NIC 的出站连接时,可能需要添加适当的路由。 请参阅适用于 Linux 分发版的相应文档。 实现此目标的以下方法:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
请务必替换以下内容:
10.0.0.5 替换为专用 IP 地址,该地址有一个与之关联的公共 IP 地址。
10.0.0.1 替换为默认网关
eth2 替换为辅助 NIC 的名称
Debian GNU/Linux
扩大
我们建议你查看 Linux 分发版的最新文档。
打开终端窗口。
请确保以根用户身份操作。 否则,请输入以下命令:
sudo -i更新网络接口的配置文件(假设为“eth0”。
保留 dhcp 的现有行项。 主要 IP 地址将保留以前的配置。
使用以下命令为每个静态 IP 地址添加配置:
cd /etc/network/interfaces.d/ ls应会看到一个 .cfg 文件。
打开 文件。 该文件的末尾应会显示以下命令行:
auto eth0 iface eth0 inet dhcp在此文件包含的命令行后面添加以下命令行。 将
10.1.0.5替换为专用 IP 地址和子网掩码。iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0在配置文件中添加新的 IP 地址信息:
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0使用以下命令保存该文件:
:wq重启网络服务以使更改生效。 对于 Debian 8 及更高版本,请使用:
systemctl restart networking对于早期版本的 Debian,可以使用以下命令:
service networking restart使用以下命令验证 IP 地址是否已添加到网络接口:
ip addr list eth0应会在列表中看到添加的 IP 地址。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
验证 (Debian GNU/Linux)
若要确保能够从辅助 IP 配置通过与之关联的公共 IP 连接到 Internet,请使用以下命令:
ping -I 10.1.0.5 outlook.com
Note
对于辅助 IP 配置,仅当该配置存在关联的公共 IP 地址的情况下,才能 ping Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping Internet。
对于 Linux VM,在尝试验证来自辅助 NIC 的出站连接时,可能需要添加适当的路由。 请参阅针对 Linux 分发的相应文档。 实现此目标的以下方法:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
请务必替换以下内容:
10.1.0.5 替换为专用 IP 地址,该地址有一个与之关联的公共 IP 地址
将 10.1.0.1 设置为默认网关
eth2 替换为辅助 NIC 的名称
后续步骤
- 详细了解 Azure 中的公共 IP 地址。
- 详细了解 Azure 中的专用 IP 地址。
- 了解如何为 Azure 网络接口配置 IP 地址。