最近更新时间:2026-06-16 17:51:51
在金山云 Linux 云服务器上,通过控制台挂载辅助网卡并绑定弹性 IP(EIP)后,从外部网络执行 ping <弹性IP> 命令,出现"请求超时"或"目标主机不可达",无法正常收到 ICMP 回显应答。
安全组未放行 ICMP 协议。
弹性 IP 绑定状态异常。
辅助网卡未在系统内正确配置 IP。
策略路由问题(常见原因)。
登录网络控制台,查看弹性 IP 绑定状态,确认不处于异常状态(到期/欠费)。
登录云服务器控制台,进入 实例详情,查看安全组状态,确认已放通 ICMP 协议。
连接云服务器实例,查看系统防火墙是否开启。
确认系统内部辅助网卡状态。
确认网卡 IP 与控制台对应正确。
确认同 VPC 内两台主机互通,排除内网网卡原因。
检查路由表。
弹性 IP 状态异常时,请登录弹性 IP 控制台,查看异常类型。若为欠费或到期,需续费或重新购买。
检查该网卡绑定的入站规则,确认必要的业务端口已开放。
若需快速测试连通性,可先放行 ICMP 协议,源 IP 填写本地 IP,执行 ping 测试。
使用 telnet <弹性IP> <业务端口> 验证端口连通性。
完成原因二的检查后,可临时关闭系统防火墙进行测试。
systemctl stop firewalld检查辅助网卡状态。
ip addr
ip link若发现辅助网卡不是 UP 状态,手动拉起:
ip link set eth1 up
ip link set eth2 up若网卡 IP 与控制台不一致,修改网卡配置并重启网络服务。
关闭严格反向路径校验(rp_filter=2)。若系统默认 rp_filter=1(严格模式),数据包从辅助网卡进入但回包走主网卡,进出网卡不一致会导致丢包。
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.eth0.rp_filter=2
sysctl -w net.ipv4.conf.eth1.rp_filter=2
sysctl -w net.ipv4.conf.eth2.rp_filter=2该配置为临时处理方法,重启后还原,配置后立即生效。若需还原,将rp_filter值改为 1。
编辑路由表配置。
vim /etc/iproute2/rt_tables添加如下内容:
101 eth1_table
102 eth2_table添加策略路由。
配置原则:
来源 IP 为 eth1 内网 IP(如 192.168.67.229)的数据包,走 eth1 专属路由表
来源 IP 为 eth2 内网 IP(如 192.168.68.105)的数据包,走 eth2 专属路由表
各路由表的外网出口固定走对应网关
ip rule add from 192.168.68.105 table eth2_table
ip route add default via 192.168.68.1 dev eth2 table eth2_table
ip rule add from 192.168.67.229 table eth1_table
ip route add default via 192.168.67.1 dev eth1 table eth1_table
ip route flush cache若需还原,执行以下命令。
ip rule del from 192.168.67.229
ip rule del from 192.168.68.105
ip route flush cache
ip route del default via 192.168.67.1 dev eth1 table eth1_table 2>/dev/null
ip route del default via 192.168.68.1 dev eth2 table eth2_table 2>/dev/null在本地执行 ping <辅助网卡弹性IP> 测试连通性。
配置前 | 配置后 |
|---|---|
外网 ↓ eth1弹性IP 进服务器 ↓ 系统无绑定规则 ↓ 回包默认走主网卡eth0 ↓ 校验:进eth1、出eth0 不一致 ↓ 直接丢弃数据包 ↓ ping 超时不通 | 外网访问 eth1 弹性IP ↓ 流量从 eth1 进入 ↓ 策略路由匹配:源IP是eth1内网IP → 走 eth1_table 路由表 ↓ 路由表强制从 eth1 网关出 ↓ 回包依旧走 eth1 网卡 ↓ 校验:进eth1、出eth1 一致 ↓ 正常转发,ping 通 # eth2 逻辑完全同上 外网→eth2进 → 策略路由强制eth2出 → 校验一致 → 通 |
场景 | 核心前置条件 | 完整流量走向链路 | 最终结果 |
|---|---|---|---|
配置前:外网 ping 辅助网卡 EIP(故障) | 1. 内核 rp_filter=1(严格模式) 2. 无策略路由规则 3. 仅 eth0 有全局默认路由 | 外网数据包 → 云网关 → eth1/eth2 辅助网卡(正常入包) → 系统无专属分流规则 → 回包强制匹配唯一全局路由,从 eth0 主网卡出站 → 回包网卡与入包网卡不一致 | 校验拦截,ping 超时,无法连通 |
配置后:外网 ping 辅助网卡 EIP(正常) | 1. 内核 rp_filter=2(宽松模式) 2. 已配置辅助网卡专属策略路由 3. 保留 eth0 唯一全局默认路由 | 外网数据包 → 云网关 → eth1/eth2 辅助网卡(入包) → 匹配对应网卡策略路由规则 → 强制从当前入包网卡及对应网关回包 → 进出网卡完全一致 | 校验通过,EIP 正常 ping 通,无丢包 |
服务器主动外网访问(业务流量) | 1. 全局默认路由优先级最高(eth0) 2. 策略路由仅生效于外部主动访问本机流量 | 服务器本地程序发起外网请求 → 优先匹配全局默认路由 → 统一从 eth0 主网卡出站 → 正常回包至 eth0 | 主网卡业务不受影响,正常联网 |
私网信息如下表
类型 | 私网IP地址 | 弹性IP | 带宽 |
|---|---|---|---|
主私网 | 192.168.67.229 | 120.xxx.xx.38(普通模式) | 5 |
辅助私网 | 192.168.67.154 | 120.xxx.xx.8(普通模式) | 1 |
辅助私网 | 192.168.67.175 | -- | -- |
辅助私网 | 192.168.67.59 | -- | -- |
弹性IP无法ping通
前面提到eth1 的路由,外网出口写死走网关 192.168.67.1。参考以下操作,给需要的ip都独立建立一个路由表。
编辑路由表,新增表号。
echo "103 eth1_154_table" >> /etc/iproute2/rt_tables配置策略规则和路由。
ip rule add from 192.168.67.154 table eth1_154_table
ip route add default via 192.168.67.1 dev eth1 table eth1_154_table刷新生效。
ip route flush cache内核参数(如果之前没改)。
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.eth1.rp_filter=2若本地依然无法ping通辅助私网的弹性ip,或者拿同vpc内网主机ping测试辅助私网也不通。
检查辅助网卡中是否同时包含了主私网和辅助私网。
若无辅助私网,则手动添加辅助私网:ip addr add 192.168.67.154/24 dev eth1
测试成功
纯净模式
