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.