Настройка netplan на виртуальной машине Ubuntu 17.04

Я использую VirtualBox с 2 сетевыми адаптерами: стандартный NAT (enp0s3) и адаптер только для хоста (enp0s8). Я использую NAT для доступа к Интернету и адаптера Host-Only к SSH с моего локального компьютера.

Коробка загружается с обоими адаптерами, оба имеют IP-адреса, все выглядит хорошо.

Я могу 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

3 ответа

Для меня удаление gateway4 из конфигурации сделал свое дело. С его настройкой я тоже не смог пинговать интернет.

Вот мой конфиг 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

Я обнаружил, что эта проблема делает то же самое сегодня днем. Каким-то образом удалось выяснить это, и netplan наконец создал только 1 маршрут по умолчанию через интерфейс NAT моей виртуальной машины. В моем случае оба 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, чтобы он мог подключаться к Интернету через мой хост.

Выход из 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

Как примечание, пока я боролся с этим и с VMware Fusion... Если у вас есть какое-либо заданное значение 'gateway4', оно будет считать это значением по умолчанию для интерфейса, и, похоже, оно не будет учитывать параметр 'metric' или наличие нескольких файлов.yaml с последовательностью нумерации (01-netplan.yaml, 02-netplan.yaml и т. д.) в моем случае 02 оказалось "первым значением по умолчанию", но это моя внутренняя сеть, поэтому общедоступный Интернет был недостижим.

Просто чтобы попытаться помочь людям. Мне удалось настроить Ubuntu Server 18.04 на машине vmware с адаптером NAT для выхода в Интернет и адаптером только для хоста, чтобы другие мои виртуальные машины (Kali, Metasploitable) также могли его видеть. Я использовал файл конфигурации netplan. Код yaml, который работал у меня, был следующим:

network:
    renderer: networkd
    ethernets:
        ens38:
            dhcp4: yes
            dhcp6: yes
        ens33:
            dhcp4: no
            addresses:
            - 10.10.10.4/8
            nameservers:
                addresses:
                - 8.8.8.8
                search:
                - 10.0.0.1
    version: 2

Причина, по которой я разместил это, - показать, что вам не нужна маршрутизация. Сначала я добавил конфигурацию для ens33, которая была моим адаптером только для хоста, а затем, как это сделал OP, я столкнулся с проблемой при попытке пинговать Интернет. Итак, все, что я сделал на этом этапе, - это добавил адаптер NAT под Ethernet, я добавил значения dhcpX yes, а затем я смог пинговать как Интернет, так и другие мои виртуальные машины!

Другие вопросы по тегам