Ubuntu 18.04: переключитесь обратно в /etc/network/interfaces

Начиная примерно с Ubuntu 18.04, разработчики Ubuntu перестали использовать классический /etc/init.d/networking а также /etc/network/interfaces метод настройки сети и переключился на то, что называется netplan, Это очень разозлило многих людей и считалось плохим ходом. Можно ли удалить netplan и используйте правильный /etc/network/interfaces способ настройки сети?

8 ответов

Решение

Следующая процедура работает для Ubuntu 18.04 (Bionic Beaver)

I. Переустановите пакет ifupdown:

# apt-get update
# apt-get install ifupdown

II. Сконфигурируйте ваш файл /etc/network/interfaces с помощью разделов конфигурации, таких как:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
  address 192.168.1.133
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # Only relevant if you make use of RESOLVCONF(8)
  # or similar...
  dns-nameservers 1.1.1.1 1.0.0.1

III. Сделайте настройку эффективной (перезагрузка не требуется):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

Внутривенно Отключите и удалите нежелательные сервисы:

# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io

Тогда все готово.

Примечание. Конечно, вы ДОЛЖНЫ адаптировать значения в соответствии с вашей системой (сеть, имя интерфейса...).

V. DNS Resolver

Поскольку Ubuntu Bionic Beaver (18.04) использует преобразователь заглушки DNS, предоставленный SYSTEMD-RESOLVED.SERVICE(8), вы ДОЛЖНЫ также добавить DNS для контакта в файл /etc/systemd/resolved.conf. Например:

....
DNS=1.1.1.1 1.0.0.1
....

и затем перезапустите systemd-resolved service, когда закончите:

# systemctl restart systemd-resolved

Записи DNS в файле ifupdown INTERFACES(5), как показано выше, актуальны только в том случае, если вы используете RESOLVCONF(8) или аналогичный.

Команда Netplan опубликовала официальный ответ на свой FAQ здесь:

Как вернуться в ifupdown

...

В работающей системе netplan можно удалить, установив ifupdown и сконфигурировав /etc/network/interfaces вручную, как это делали пользователи ранее.

Во время установки пользователь может выбрать использование ifupdown, предварительно выполнив команду netcfg / do_not_use_netplan = true. Это можно сделать, добавив строку preseed в командную строку при загрузке установочного носителя (т. Е. В меню загрузки установочного носителя нажмите F6, введите "e" и добавьте в командную строку).

Смотрите ответ Nuxwin для более полных инструкций.

Ответ Nuxwin велик и почти полный, я бы просто добавить строки:

rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Это гарантирует, что распознаватель может быть обновлен DHCP-клиентом, как это было раньше при использовании интерфейсов.

(Я бы добавил это как комментарий, но почему-то нужно 50 репутации, чтобы оставить комментарий)

Netplan и yaml в лучшем случае хрупки в среде только для сервера (ошибки отступов будут стоить вам). Интерфейсы были достаточно прощающими, что облегчало управление настройками сети на сервере.
Netplan вводит новые слои. Но настоящая проблема в том, что U18 ломается, если не работает, и не завершает работу с NetPlan. Если вы вернетесь в /etc/network/interfaces путем переустановки ifupdown, управление DNS больше не будет работать в файле интерфейсов. Все записи DNS-имен игнорируются. Вместо этого dns устанавливается в /etc/resolv.conf. Но вы не можете редактировать этот файл, потому что он перезаписывается каждый раз при загрузке машины. WTF? Netplan был разработан для управления с помощью графического интерфейса, поэтому у тех из нас, кто находится в лагере только для серверов, осталась хрупкая система, вокруг которой мы должны ходить на цыпочках. Не хорошо Ubuntu!
почему бы не дать нам способ перенаправить настройки в /etc/network/interfaces в netplan при загрузке, чтобы помочь нам, пока вы заканчиваете netplan?

Почему бы просто не настроить с Netplan?

Ну, так как он настроен в 18.04-Desktop, он представляет собой одну линию, передающую управление всем интерфейсам NetworkManager.

Хотя это, вероятно, подходит для 95% пользователей, помните, что NetworkManager запускается только после входа в сеанс.

Если вы хотите, чтобы ваша машина работала в качестве сервера / рабочего стола, например, начала передавать файлы на локальные машины, выступать в качестве VNP-сервера и т. Д. Или что-то "навороченное" до того, как кто-либо вошел в систему, просто по тому простому факту, что у вас будут проблемы с настройкой в ​​стандартном 18.04-Desktop.

Конечно, альтернативой может быть использование конфигурации сервер-Netplan, которая, насколько я прочитал (не проверял сам), вместо этого передает управление systemd-networkd. В этом случае вам лучше узнать, как systemd работает как замена старой инициализации System V.

Если вы пойдете по этому пути, вам все равно придется внести изменения в netplan yaml, поскольку в настольной версии управление передается NetworkManager.

Ключ зная, что cloud.init настоящая программа управления
Это, как говорится, линия в netplan Конфигурационный файл "необязательно: правда" является обязательным.
Зная, что это легко.

Я только что удалил 01-network-manager-all.yaml и скопировал его в /root/save/, Затем поместите вместо него известный хороший конфиг, 50-cloud-init.yaml: его содержание следует:

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: enp*
        optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.2.5/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [127.0.0.1, 8.8.4.4]          
      parameters:
        mode: 0          
        mii-monitor-interval: 100

Затем перезагрузите компьютер и он должен работать нормально.

Известная хорошая конфигурация была получена из Configure связанной сети 802.3ad с использованием netplan в Ubuntu 18.04.

Почему бы просто не удалить netplan:

      $ sudo apt remove netplan
$ rm -rf /etc/netplan

Раз и навсегда!

Согласно этому ответу, решение состоит в том, чтобы удалить все рабочие файлы.yaml: Ubuntu 17.10 отключить netplan

Я бы не стал ничего удалять без резервного копирования. Мы можем сделать это легко, просто переместив файлы в сторону. Сначала найдите файлы:

sudo updatedb
locate netplan | grep yaml

В моей системе 18.04 кажется, что единственный рабочий файл - это /etc/netplan/01-network-manager-all.yaml. Давайте переместим это:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... где user - ваше имя пользователя.

Теперь убедитесь, что файл действительно пропал:

ls /etc/netplan

Теперь внесите необходимые дополнения в /etc/network/interfaces.

Перезагружать.

Есть ли улучшения?

Сноска: Точный процесс сделать это трудно найти. Возможно, нам нужно немного уточнить, как мы идем.

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