Ubuntu之netplan踩坑记录
背景
本机用vmware安装虚机Ubuntu 20.04,添加2张网卡,一张外网使用(nat),一张内网使用(host), 结果所有流量走host那张网卡,导致外网不通,经过一系列查询资料及折腾终于解决,现记录之。
常用命令
# 网络配置生效
netplay apply
# 查看路由
ip route show
# 删除路由
ip route del default via x.x.x.1
例: ip route del default via 192.168.56.1
# dns配置查看
resolvectl dns
环境
虚拟机: VMware Fusion 12
系统: Ubuntu 20.04 LTS
网卡1:
名称: enps33
类型: nat
网关: 192.168.65.1
网卡2:
名称: enps34
类型: host
网关: 192.168.56.1
方案一: 删除默认路由
- 临时方案
ip route del default via 192.168.56.1 - 持久方案
加入开机自启
sudo tee /etc/rc.local<<EOF
#!/bin/sh
ip route del default via 192.168.56.1
EOF
方案二:修改netplan配置(推荐)
关键点在于metric的值,如果是DHCP方式需要dhcp4-overrides覆盖下,具体参考如下配置
cat /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens33-:
dhcp4: true
dhcp4-overrides:
route-metric: 50 # 路由优先级,越小优先级越高
ens33: # nat网卡
optional: true
dhcp4: false
addresses:
- 192.168.65.102/24
nameservers:
addresses:
- 192.168.65.2
routes:
- to: 0.0.0.0/0
via: 192.168.65.2
metric: 50 # 路由优先级,越小优先级越高
ens34: # host网卡
optional: true # 系统启动不用等待网络接口完全激活
dhcp4: false
addresses:
- 192.168.56.102/24
routes:
- to: 0.0.0.0/0
via: 192.168.56.1
metric: 100
ip route show
default via 192.168.65.2 dev ens33 proto static metric 50
default via 192.168.56.1 dev ens34 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.56.0/24 dev ens34 proto kernel scope link src 192.168.56.102
192.168.65.0/24 dev ens33 proto kernel scope link src 192.168.65.102
ping qq.com 成功
ping 192.168.56.1 成功