服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-24 简米科技 3,861 字 9 分钟阅读

虚拟机多个网关如何配置?多网关路由冲突解决与最佳实践

导读虚拟机可以配置多个网关,但Linux的main路由表里通常只能保留一个默认网关;多出口应通过策略路由、明细路由或Windows度量值来分流, 配错时最典型的后果是时通时断、SSH掉线、DNS走错出口,先把“默认路由唯一、流量按规则分流”这两件事想清楚,再动手敲命令,为什么虚拟机多网关容易冲突?先理解默认网关和路……

虚拟机可以配置多个网关,但Linux的main路由表里通常只能保留一个默认网关;多出口应通过策略路由、明细路由或Windows度量值来分流。 配错时最典型的后果是时通时断、SSH掉线、DNS走错出口,先把“默认路由唯一、流量按规则分流”这两件事想清楚,再动手敲命令。

为什么虚拟机多网关容易冲突?先理解默认网关和路由表

默认网关在系统里不是“网卡属性”这么简单,它最终会变成一条0.0.0/0默认路由,虚拟机有多块网卡、各配一个网关时,如果两条默认路由都进入main表,系统选路就可能受优先级、网卡顺序、连接状态影响,表现为不可预测。

虚拟机多网关配置冲突的典型表现

  • 外网访问时通时断,换一个网段又正常。
  • SSH或远程桌面突然断开,控制台登录后发现路由被改。
  • DNS解析走错出口,内网域名解析失败。
  • NAT回程不对称,请求出去却回不来。
  • 监控显示网卡有流量,但业务端口不通。
  • 云主机多网卡场景下,安全组和源/目的检查未放行。

这些现象不一定是网关本身坏了,更多是路由选择与回程路径不一致,业内专家指出,多网卡虚拟机的故障排查,第一步应看路由表和策略规则,而不是先重装网卡驱动。

Linux虚拟机添加第二个默认网关会冲突吗?

会,只要两条default路由都落在main表,就可能冲突,先用命令确认:

ip route show
ip route show table all
ip rule show

如果看到类似两条默认路由,且没有策略规则区分源地址,就属于高风险配置:

default via 192.168.10.1 dev eth0
default via 10.0.20.1 dev eth1

正确处理不是“再加一条默认路由”,而是main表只留一个默认网关,其他出口放进独立路由表。

云服务器双网卡多网关配置方法:策略路由与静态路由怎么选

多网关配置先看业务需求,只访问某个内网网段,用明细路由最省事;需要按源地址、业务网卡分流,才上策略路由,两者不是二选一的对立关系,常配合使用。

只访问特定内网网段,静态路由优先

比如eth1接的是存储网段0.30.0/24,网关为0.20.1,只需加一条明细路由:

ip route add 10.0.30.0/24 via 10.0.20.1 dev eth1

这种写法不影响原有默认网关,冲突概率低,验证时用:

ip route get 10.0.30.20
ping -I eth1 10.0.30.20

多出口按源地址分流,使用策略路由

假设eth0为管理出口,eth1为业务出口,eth0保留main表默认网关;eth1的流量走独立路由表100。

# 1. 确认地址
ip addr show eth1
# 2. 登记路由表名称
echo "100 eth1" >> /etc/iproute2/rt_tables
# 3. 给表100添加直连路由和默认网关
ip route add 10.0.20.0/24 dev eth1 src 10.0.20.10 table 100
ip route add default via 10.0.20.1 dev eth1 table 100
# 4. 源地址来自eth1的流量查表100
ip rule add from 10.0.20.10/32 table 100 priority 100
# 5. 验证
ip rule show
ip route show table 100
ip route get 8.8.8.8 from 10.0.20.10

关键点是不要往main表再塞第二条默认路由,策略规则只负责“哪类流量查哪张表”,默认网关仍在各自表内各管一段。

主备出口与高可用网关

多网关高可用常被误解成“配两个默认网关”,更稳妥的做法是用VRRP或云平台高可用方案,让同一网段使用一个虚拟网关IP,出口切换由网关侧完成,虚拟机内仍保持清晰的路由表,避免主备默认路由同时生效。

多网关配置最佳实践:先规划再落命令

网卡、网段和路由表先规划

网卡 用途 示例地址 网关 路由表 策略规则
eth0 管理/默认出口 168.10.10/24 168.10.1 main 默认
eth1 业务出口 0.20.10/24 0.20.1 100 源地址10.0.20.10查表100
eth2 存储网段 0.30.10/24 0.30.1 101 目的网段走明细路由

规划时把“管理流量”和“业务流量”分开,管理网卡保留默认网关,业务网卡用策略路由,这样即使业务路由配错,也不容易把远程管理通道一起弄断。

默认网关只留一个,其他走表或明细路由

Linux上可用ip route检查默认路由数量,Windows上则看接口度量值:

route print
Get-NetRoute -DestinationPrefix "0.0.0.0/0"
Get-NetIPInterface
Set-NetIPInterface -InterfaceAlias "Ethernet 2" -InterfaceMetric 50

Windows允许每块网卡配置网关,但多个默认网关会按度量值选路。度量值越低越优先,不要让两块网卡使用相同度量值,否则切换行为不稳定,行业共识认为,多网卡服务器应把非主出口的自动度量关闭,改为手工规划。

持久化配置与回滚方案

临时命令重启即失效,Linux可按发行版选择NetworkManager dispatcher、systemd-networkd、netplan或云主机cloud-init固化,云服务器双网卡多网关配置方法中,持久化比临时生效更容易出错。

回滚命令要提前准备:

ip rule del from 10.0.20.10/32 table 100 priority 100
ip route flush table 100

改远程机器前先开控制台或带外管理,先加明细路由测试,再动默认网关,这个顺序能减少失联风险。

北京地区云主机多网关配置价格与选型注意

北京地区云主机多网关配置价格通常不是“多配一个网关”单独收费,而是由实例规格、网卡数量、弹性公网IP带宽、NAT网关、跨可用区流量等计费项组成,不同地域和计费方式会有差异,具体以云厂商控制台为准,选型时先确认平台是否支持多网卡、是否要求关闭源/目的检查、安全组是否允许对应网段,价格敏感的业务可先用小带宽和按流量计费验证路由,再扩带宽。

冲突排查清单:从现象到命令

先看默认路由和策略规则

ip route show
ip route show table all
ip rule show
ip route get 目标IP

ip route get能直接告诉你某个目的地址会走哪块网卡、哪个源地址,比只看ip addr更有效。

再看ARP、回程和云平台限制

ip neigh show
tcpdump -i eth1 -nn arp
tcpdump -i eth1 -nn host 目标IP

如果请求从eth1出去,回程却从eth0进来,NAT和状态防火墙就可能丢包,云主机还要检查VPC路由、安全组、网络ACL和源/目的检查。

现象 常见原因 处理方向
时通时断 main表存在多条默认路由 保留一个默认网关,其余进独立表
SSH断开 默认路由被改到业务网卡 控制台登录,恢复管理网卡默认路由
内网通、外网不通 NAT或回程路径不对称 检查SNAT、策略规则和安全组
新加网卡不生效 云平台未放行或网卡未启用 检查网卡状态、路由表和平台配置

虚拟机多网关配置的核心不是“多写几条网关”,而是默认路由唯一、分流规则明确、回滚路径可用,把main表管好,把业务出口放进独立路由表,再配合验证命令,绝大多数冲突都能提前避开。

虚拟机多网关配置常见问答:冲突解决与最佳实践

问:虚拟机可以同时配置两个默认网关吗?

Linux的main表不建议同时存在两条默认路由,容易造成选路不确定,Windows可配置多个默认网关,但系统会按接口度量值选择一个优先出口,仍需手工规划度量值,需要多出口分流时,应使用策略路由或明细路由,而不是简单叠加默认网关。

问:多网卡多网关配置后SSH断连,怎么快速恢复?

通过云控制台或带外管理登录,先执行ip rule show和ip route show,删除刚加的策略规则和独立路由表,恢复管理网卡默认路由,若无法进入系统,可在控制台挂载救援模式或使用VNC登录,恢复后先加明细路由测试,再调整默认网关。

问:云服务器双网卡多网关需要额外付费吗?

多网卡本身是否收费取决于云平台规则,弹性公网IP、带宽、NAT网关和跨可用区流量通常会产生费用,北京地区云主机多网关配置价格应以具体厂商的计费项为准,配置前先确认网卡限额、路由表配额和流量计费方式。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱