Ubuntu 17.04虚拟机上的netplan配置


13

我正在使用2个网络适配器运行VirtualBox:标准NAT(enp0s3)和仅主机适配器(enp0s8)。我使用NAT来访问Internet,并使用仅主机适配器从本地计算机进行SSH进入。

盒子在启用两个适配器的情况下启动,两个适配器都有IP地址,一切看起来都很不错。

ifconfig输出

我可以通过仅主机适配器通过SSH进入此框中,那里没有问题。但是我无法通过它上网。但是,如果我禁用了仅主机适配器,则可以访问Internet(但显然我不能再通过本地隧道通过SSH进入它)。

控制台输出

最后,这是我的netplan yaml配置:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
ethernets:
  enp0s3:
    dhcp4: yes
    dhcp6: yes
  enp0s8:
      dhcp4: no
    dhcp6: no
    addresses: [192.168.52.101/24]
    gateway4: 192.168.52.101

有任何想法吗?似乎我所有的出站流量都以某种方式路由通过仅主机的适配器。

编辑:附加的输出ip route list以防万一。

default via 192.168.52.101 dev enp0s8 proto static
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.52.0/24 dev enp0s8 proto kernel scope link src 192.168.52.101

算了,我无法弄清楚netplan,所以我格式化并安装了Ubuntu 16。
hellojason

Answers:


12

我发现这个问题今天下午做的完全一样。不知何故设法解决了问题,netplan最终仅通过我的VM的NAT接口创建了1条默认路由。在我的情况下,两个IP均为192.168.56.101(仅主机)和10.0.3.x / 24(NAT dhcp4)。我正在使用此netplan文件:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s8:
          dhcp4: yes
          dhcp6: yes
          routes:
          - to: 0.0.0.0/0
            via: 10.0.3.2
            metric: 0
        enp0s3:
          dhcp4: no
          dhcp6: no
          addresses: [192.168.56.101/24]
          routes:
          - to: 192.168.56.1/24
            via: 192.168.56.1
            metric: 100

有了这个,我只有一条默认路由,并且它正在使用NAT,因此它可以通过我的主机到达Internet。

输出 ip r

default via 10.0.3.2 dev enp0s8 proto dhcp src 10.0.3.15 metric 100
10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15
10.0.3.2 dev enp0s8 proto dhcp scope link src 10.0.3.15 metric 100
192.168.56.0/24 dev enp0s3 proto kernel scope link src 192.168.56.10

2
好答案!在这种情况下,您确实确实需要设置自己的路由。如果两个设备都包含“默认网关”(即它们指定为“ dhcp4”或“ dhcp6”,或设置为“ gateway4”),则系统将使用默认度量值相同的默认网关设置两个设备。但是,您不需要enp0s3上的路由,因为“地址”已经包含与用于访问192.168.56.1的子网相同的/ 24子网。或者,在进行操作时随处设置自己的路由。
Mathieu Trudel-Lapierre,

12

对我来说,gateway4从配置中删除就可以了。配置它后,我也无法ping通Internet。

如果可以帮助他人,这是我的netPlan配置。

注意: enp0s3用于通过端口转发的ssh,enp0s8用于静态ip

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
            optional: true
        enp0s8:
            addresses: [192.168.10.20/24]
            dhcp4: no
            dhcp6: no
            nameservers:
              addresses: [8.8.8.8, 8.8.4.4]
    version: 2

3
是的,删除gateway4行对我唯一有效。
furman87

删除为我工作的gateway4
Albert Hidalgo

0

值得注意的是,当我在为此和VMware Fusion奋斗时...如果您指定了任何'gateway4'值,它将假定该接口为默认值,并且似乎不尊重'metric'选项或在我的案例02中,有多个具有编号顺序(.01-netplan.yaml,02-netplan.yaml等)的.yaml文件最终成为“第一个默认值”,但这是我的内部网络,因此公共互联网是无法到达。


嗨,迈克-欢迎来到Askubuntu。作为问题下的注释,这会更好。您应该将文本移到此处,然后删除它,因为它不是要“回答”问题。
dpb '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.