Netplan虚拟机双网卡配置

2020-11-15
#linux #network

背景

由于笔记本电脑的网络环境总是会变化,导致虚拟机的网络ip不能固定,因此我给虚拟机设置了两块网卡,一块是Host-only,名为enp0s3,网段为192.168.137.0/24 ;另一块是网络地址转换(NET),用于访问互联网,名为eth0

默认的设置会导致访问互联网时有时会走eth1,导致无法上网。也就是路由表配置错误。

一开始的路由表如下

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.137.1   0.0.0.0         UG    0      0        0 eth0
default         10.0.3.2        0.0.0.0         UG    100    0        0 eth1
10.0.3.0        0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.168.137.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

可以看到有两个default,导致上网会使用eth0。可以输入sudo route del eth0 gw 192.168.137.1临时解决。

解决方案

这里使用netplan配置网络,在/etc/netplan/下新建任意名称的yaml文件,内容如下:

network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            dhcp4: no
            addresses: [192.168.137.3/24]
            optional: true
            #这里不能写gateway4,不然会路由表里会创建一个default的记录
        eth1:
            dhcp4: yes
            addresses: []
            optional: true
            nameservers:
                addresses: [101.6.6.6,8.8.8.8]

然后,用命令sudo netplan apply就可以生效了。

参考文章

  1. Ubuntu18.04下双网卡内外网设置 - 大橘为重之大橘已定