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

如何用DHCP与Netplan配置默认路由度量并自动调整顺序?

解决Vagrant机器Netplan默认路由度量错误的方案

我之前在处理Vagrant虚拟机的Netplan路由问题时,也碰到过类似的默认路由度量错乱的情况,结合你的场景(enp0s3作为NAT接口需要优先走互联网,且不能固定网关),给你几个靠谱的解决方案:

方案一:通过Netplan的DHCP覆盖调整路由度量

如果你的enp0s3是通过DHCP获取地址(Vagrant的NAT接口默认都是DHCP),可以直接在Netplan配置中给enp0s3设置更低的路由度量值,让它的默认路由优先级高于enp0s8。这种方式不需要手动固定网关,完美适配你提到的限制。

编辑你的Netplan配置文件(通常在/etc/netplan/目录下,比如00-installer-config.yaml):

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
      dhcp4-overrides:
        route-metric: 100  # 数值越小,优先级越高
    enp0s8:
      dhcp4: true
      dhcp4-overrides:
        route-metric: 200  # 设置比enp0s3更高的数值

如果enp0s8是静态IP配置,那就在它的路由设置里指定更高的度量:

enp0s8:
  addresses: [192.168.56.10/24]  # 你的静态IP
  routes:
    - to: default
      via: 192.168.56.1  # 你的静态网关
      metric: 200

配置完成后,执行以下命令生效:

sudo netplan apply

或者重启虚拟机:vagrant reload

方案二:通过Vagrant启动脚本自动修正路由

如果Netplan的配置因为Vagrant的网络初始化逻辑干扰而不生效,可以直接在Vagrantfile中添加一个启动脚本,每次虚拟机启动时自动调整路由。

修改你的Vagrantfile,添加shell provisioner:

Vagrant.configure("2") do |config|
  # 其他配置...
  
  config.vm.provision "shell", inline: <<-SHELL
    # 尝试删除enp0s8的默认路由(如果存在)
    sudo route del default dev enp0s8 || true
    
    # 或者动态调整enp0s3的默认路由度量为100(避免固定网关)
    DEFAULT_GATEWAY=$(ip route show dev enp0s3 | grep default | awk '{print $3}')
    if [ -n "$DEFAULT_GATEWAY" ]; then
      sudo ip route change default via $DEFAULT_GATEWAY dev enp0s3 metric 100
    fi
  SHELL
end

这个脚本会在虚拟机启动时自动执行,要么删除enp0s8的默认路由,要么调整enp0s3的路由度量,确保互联网流量走NAT接口。

方案三:通过udev规则设置接口默认度量

另一种更底层的方式是通过udev规则,在网络接口启动时自动设置它的度量值,这样路由会默认继承接口的度量优先级。

创建udev规则文件/etc/udev/rules.d/70-netmetric.rules:

SUBSYSTEM=="net", ACTION=="add", KERNEL=="enp0s3", RUN+="/sbin/ip link set dev $name metric 100"
SUBSYSTEM=="net", ACTION=="add", KERNEL=="enp0s8", RUN+="/sbin/ip link set dev $name metric 200"

保存后,重启udev服务或者虚拟机,接口启动时就会自动应用度量值,对应的路由优先级也会随之调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:41:27