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


44

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


2
Почему бы просто не настроить с Netplan? В большинстве ситуаций это довольно просто.
— chili555

3
@ chili555 Возможно, мне просто нужно принять изменения и узнать что-то новое. Я просто хотел бы знать, тривиально ли вернуться к тому, что должно быть. Как и systemdя, я понимаю, что подрывные изменения иногда могут быть полезны и могут быть приняты. Тем не менее, это, безусловно, не тот случай, когда изменения были необходимы или полезны.
— jdgregson

1
Это не тривиально и не легко обратимо в случае ошибки. Если ты хочешь жить опасно, я буду рад предложить ответ. С другой стороны, мы можем настроить netplan за пару минут. Какой ты предпочитаешь? PS - Я не претендую на полное понимание того, как netplan, за исключением /etc/network/interfaces, вписывается в общую системную картину. Все, что я могу сделать, - это верить, что те, кто представил изменения, знают, почему они лучше подходят.
— chili555

1
Или просто правильно настройте netplan и все готово.
— chili555

1
@ chili555 Netplan не поддерживает виртуальные сетевые интерфейсы. Смотрите здесь: askubuntu.com/questions/990825/virtual-interface-in-netplan
— user3751385

Ответы:


43

Следующая процедура работает для 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, как только это будет сделано:

# systemctl restart systemd-resolved

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


9
Ну дерьмо им. Просто, apt-get installкогда у вас нет конфигурации сети. Какая блестящая идея, Canonical.
— Велкан

1
@Velkan Вы всегда можете предварительно сконфигурировать свою сеть с помощью netplan, а затем переключиться обратно на ifupdown;) Но я согласился с вами. Как-то канонически принимать плохие решения. Например, они ломают программное обеспечение, которое полагается на ifupdown для конфигурации сети (нет поставщика для сетевого плана). Это касается нашего программного обеспечения панели управления (стабильная серия), в котором мы не хотим добавлять нового поставщика конфигурации сети ...
— Nuxwin

3
@ StefhenBoston Я полностью согласен с вами. Однако, даже если Canonical попытается продвинуться вперед, внедрив новую технологию, она сможет сделать это менее инвазивным способом. Я имею в виду, выбор должен быть оставлен конечному пользователю. Для рабочих станций переход с ifupdown на netplan, конечно, не имеет большого значения, но когда вам приходится иметь дело с серверами Ubuntu, это другая история, потому что большинство стабильных программных продуктов не обязательно предоставляют адаптеры ... Это было то же самое для systemd. Мне приходится иметь дело как с Debian, так и с Ubuntu каждый день. Проблема с Ubuntu в том, что они не заботятся о обратной совместимости.
— Нуксвин

1
Незначительная коррекция: # systemctl unmak networking-># systemctl unmask networking
— Сантош

1
Кроме того, если вы используете dns-domainи dns-searchв файле интерфейсов, вы должны настроить Domainsпараметр в resolved.conf, я думаю? Во всяком случае, отличная работа, сложив все это здесь, вероятно, сэкономила мне много времени :)
— OttoEisen

10

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

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

...

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

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

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


9

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


1
как это отвечает на вопрос?
— Pierre.Vriens

@Dan Desjardins. См. Принятый ответ относительно проблемы распознавателя DNS. В сущности, записи DNS, которые вы помещаете в файл ifupdown INTERFACES (5), актуальны только при использовании resolvconf (8) или аналогичного. Для преобразователя заглушки DNS, предоставленного SYSTEMD-RESOLVED.SERVICE (8, необходимо добавить DNS в файл /etc/systemd/resolved.conf. Это сделает их постоянными. Другое решение - отключить SYSTEMD-RESOLVED. SERVICE (8) обслуживание и установка / настройка resolvconf (8). В надежде, что я достаточно ясен.
— Nuxwin

2

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

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

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

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

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

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


3
Существует по крайней мере одна причина: Netplan не поддерживает openvswitch.
— Камилион

5
netplan не поддерживает псевдонимы IP (стиль eth0: 0). Я не могу поверить, как такая штука может попасть на сервер Ubuntu!
— Хамид Фадишей,

Потому что мои netplanкаталоги пусты!
— dsgdfg

Служба NetworkManager запускается довольно рано и не требует сеанса или зарегистрированного пользователя.
— выше

1

Ключ в том, что 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 .


1
Здесь вопрос заключается в том, как переключиться обратно на ifupdown;) В будущем вы должны попытаться ответить на вопросы, не загрязняя их, даже с помощью этого не всегда легко придерживаться начальной темы;)
— Nuxwin

0

Согласно этому ответу, решение состоит в том, чтобы удалить все рабочие файлы .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.

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

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

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


Я должен попробовать это и посмотреть, как это происходит. Единственный другой вопрос - как применить изменения без перезагрузки. В прошлом вы могли бы использовать ifup/ ifdown, /etc/init.d/networking restart, service networking restart, и Systemd методы, такие как systemctl restart networking, и systemctl restart Network-Manager.serviceт.д., но ни один из них не было возможно для меня после установки Ubuntu 18.04.
— jdgregson

Каков результат: sudo ip link set eth0 downзатем: sudo ifup -v eth0Конечно, замените ваш интерфейс мифическим eth0.
— chili555

ifupdownне устанавливается по умолчанию, поэтому при вызове ifupон просто говорит, как его установить. Однако sudo ip link set eth0 downзатем следует sudo ip link set eth0 upвыключить и снова включить интерфейс.
— jdgregson

Потрясающе! Так ты решил и все готово?
— chili555

Осторожно, не все файлы * .yaml связаны с netplan, поэтому удаляйте только те, которые находятся в каталогах, связанных с netplan!
— января
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.