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

Ubuntu 22虚拟机配置第二、第三块网卡时Netplan默认路由冲突问题求助

Ubuntu 22虚拟机配置第二、第三块网卡时Netplan默认路由冲突问题求助

嗨,我之前也碰到过Netplan这种默认路由冲突的问题,咱们来一步步解决它~

首先得搞清楚报错的原因:Netplan不允许在同一个默认路由表(也就是main表)里同时存在两个默认路由,所以你给ens160和ens192都设置了default路由,就触发了这个冲突提示。接下来分两种场景给你对应的解决方案:

场景一:只需要一个默认网关(大多数情况)

如果你的需求是仅用其中一块网卡(比如ens160)作为默认网关访问外网,另一块网卡(ens192)只负责和自身网段(192.168.252.0/24)的设备通信,那只要去掉ens192的默认路由配置就行——Netplan会自动给网卡添加对应网段的直连路由,不需要手动设置。

修改后的Netplan配置如下:

network:
  ethernets:
    ens160:
      addresses:
        - 192.168.50.231/24
      nameservers:
        addresses:
          - 192.168.50.1
        search:
          - domain.com
      routes:
        - to: default
          via: 192.168.50.254
    ens192:
      addresses:
        - 192.168.252.231/24
      nameservers:
        addresses:
          - 192.168.252.1
        search:
          - domain.com
  version: 2

场景二:需要分流(特定流量走不同网卡)

如果你确实需要让部分流量走ens192的网关,就得用到策略路由,给每个网卡分配独立的路由表,再通过规则指定哪些流量用哪个表。

比如我们给ens160分配路由表100,ens192分配路由表200,配置如下:

network:
  ethernets:
    ens160:
      addresses:
        - 192.168.50.231/24
      nameservers:
        addresses:
          - 192.168.50.1
        search:
          - domain.com
      routes:
        - to: default
          via: 192.168.50.254
          table: 100
      routing-policy:
        # 来自ens160 IP的流量用表100
        - from: 192.168.50.231/32
          table: 100
        # 访问ens160网段的流量用表100
        - to: 192.168.50.0/24
          table: 100
    ens192:
      addresses:
        - 192.168.252.231/24
      nameservers:
        addresses:
          - 192.168.252.1
        search:
          - domain.com
      routes:
        # 添加自身网段的路由
        - to: 192.168.252.0/24
          via: 192.168.252.254
          table: 200
        # 给ens192设置默认路由(仅在表200生效)
        - to: default
          via: 192.168.252.254
          table: 200
      routing-policy:
        # 来自ens192 IP的流量用表200
        - from: 192.168.252.231/32
          table: 200
        # 访问ens192网段的流量用表200
        - to: 192.168.252.0/24
          table: 200
  version: 2

配置验证与应用

不管用哪种方案,都建议先运行以下命令检查配置语法:

sudo netplan generate

如果没有报错,再应用配置:

sudo netplan apply

你还可以用这些命令查看路由和规则是否生效:

  • 查看指定路由表:ip route show table 100(替换成对应表号)
  • 查看策略路由规则:ip rule show

备注:内容来源于stack exchange,提问作者user212398

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:39:51