You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure VM新增带公网IP的NIC无法联网,原有NIC正常

Azure多NIC公网连接故障排查与解决方案

当前配置

  • VM采用「Basic SKU dynamic」网络配置创建
  • 原有NIC配置多个动态Basic SKU公网IP,运行正常
  • 可通过curl --interface <existing interface ipv4 address> http://example.com成功访问互联网

问题描述

  1. 新增带公网IP的NIC(eth1为新增网卡),执行ip addr show输出:
(eth1 is a newly added nic.)
azureuser@instanceXX:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 60:45:bd:48:e7:f1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
 # ~~~~skipping the middle~~~~ 
    inet6 fe80::6245:bdff:fe48:e7f1/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 7c:1e:52:2b:a9:ff brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.104/24 metric 200 brd 10.0.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::7e1e:52ff:fe2b:a9ff/64 scope link
       valid_lft forever preferred_lft forever
4: enP12745s1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master eth0 state UP group default qlen 1000
    link/ether 60:45:bd:48:e7:f1 brd ff:ff:ff:ff:ff:ff
    altname enP12745p0s2
    inet6 fe80::6245:bdff:fe48:e7f1/64 scope link
       valid_lft forever preferred_lft forever

执行route -n得到路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     200    0        0 eth1
10.0.0.1        0.0.0.0         255.255.255.255 UH    100    0        0 eth0
168.63.129.16   10.0.0.1        255.255.255.255 UGH   100    0        0 eth0
168.63.129.16   0.0.0.0         255.255.255.255 UH    200    0        0 eth1
169.254.169.254 10.0.0.1        255.255.255.255 UGH   100    0        0 eth0
  1. 新NIC上的主、次IP均无法联网:
azureuser@instanceXX:~$ curl --interface 10.0.0.104 http://example.com
curl: (28) Failed to connect to example.com port 80 after 134224 ms: Connection timed out
  1. 原有NIC及其IP仍可正常工作
  2. 两块NIC共享同一网络安全组(NSG),该NSG自VM创建后未修改

预期行为

  • 两块NIC各配置225个动态Basic SKU公网IP,均能正常联网

附加说明

  • 因成本限制未使用Standard SKU
  • NSG为VM创建时的默认配置

已尝试方案

  • 使用Azure连接排查及支持工具,未解决问题
  • 尝试创建不同SKU的IP,因SKU不匹配导致VM无法启动
  • 创建新VM并复制配置,仍遇到相同问题

解决方案建议

1. 配置源IP策略路由

Basic SKU环境下,默认仅主NIC的主IP会被自动配置SNAT和默认路由,新增NIC的流量需要手动配置策略路由确保回程路径正确:

  • 添加自定义路由表标识:
echo "200 eth1rt" >> /etc/iproute2/rt_tables
  • 为新NIC的源IP绑定专属路由规则:
ip rule add from 10.0.0.104/32 table eth1rt
  • 为自定义路由表添加默认网关:
ip route add default via 10.0.0.1 dev eth1 table eth1rt
  • 永久保存规则(以Ubuntu为例),在/etc/network/interfaces.d/eth1.cfg中添加:
post-up ip rule add from 10.0.0.104/32 table eth1rt
post-up ip route add default via 10.0.0.1 dev eth1 table eth1rt
pre-down ip rule del from 10.0.0.104/32 table eth1rt
pre-down ip route del default via 10.0.0.1 dev eth1 table eth1rt

如果有多个次IP,需要为每个IP重复添加对应的规则和路由。

2. 验证Azure端公网IP关联状态

确认新NIC的公网IP已正确绑定且状态正常:

az network nic show --name <eth1-nic-name> --resource-group <resource-group-name> --query 'ipConfigurations[].publicIpAddress'

输出应包含公网IP的资源ID,且公网IP的SKU为Basic、状态为Enabled。

3. 检查NSG出站规则

虽然NSG是默认配置,但需确认出站规则允许所有流量(默认规则AllowInternetOutBound优先级1000)未被修改或覆盖,确保新NIC的出站流量能正常通过。

内容的提问来源于stack exchange,提问作者NO2 SIIZEXL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:23:16