ECS实例绑定ENI后(EIP可见模式)无法访问公网

问题描述

ECS实例绑定弹性网卡(ENI)后(EIP可见模式),无法访问公网。

问题原因

ECS实例绑定的ENI是eth1网卡,其路由优先级低于eth0,实例内对外访问时优先通往eth0路由,由于eth0没有公网地址,在实例内就无法访问公网。

解决方案

metric值越小,路由的优先级越高。您可以通过将eth0的metric值调整为大于eth1的metric值,使eth1优先级高于eth0,来解决上述问题。

  1. 执行以下命令,查看并记录eth0和eth1网卡路由信息。

    ip route

    如下图所示,eth1的metric值为1001。image

  2. 参考以下命令,删除旧的eth0的默认路由。

    ip -4 route del default via <IP> dev eth0 metric 0
    说明

    <IP>为eth0对应的网关地址,您可以参考获取弹性网卡的信息查询eth0网卡的网关地址。

  3. 参考以下命令,重新添加eth0的默认路由,并设置eth0的metric值,使其大于eth1的metric值(例如1004)。

    ip -4 route add default via <IP> dev eth0 metric 1004
    说明

    <IP>为eth0对应的网关地址,您可以参考获取弹性网卡的信息查询eth0网卡的网关地址。