Ubuntu 18.04: повернення до / etc / network / інтерфейсів


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 / інтерфейси за допомогою параметрів конфігурації, таких як:

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

ІІІ. Зробити конфігурацію ефективною (перезавантаження не потрібно):

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

IV. Вимкнення та видалення небажаних служб:

# 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

Оскільки Ubuntu Bionic Beaver (18.04) використовує роздільну здатність DNS-заглушки, передбачену системою SYSTEMD-RESOLVED.SERVICE (8), ви повинні також додати DNS для контакту у файл /etc/systemd/used.conf. Наприклад:

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

а потім перезапустіть систему, вирішену системою, після завершення:

# systemctl restart systemd-resolved

Записи DNS у файлі ifupdown INTERFACES (5), як показано вище, є актуальними лише у тому випадку, якщо ви використовуєте RESOLVCONF (8) або подібні.


9
Ну, ф *** ім. Просто apt-get installколи у вас немає конфігурації мережі. Яка геніальна ідея, Canonical.
Велкан

1
@Velkan Ви завжди можете попередньо налаштувати свою мережу за допомогою netplan, а потім перейти до ifupdown згодом;) Але я погодився з вами. Якось канонічно приймають погані рішення. Наприклад, вони порушують програмні засоби, які покладаються на ifupdown для конфігурації мережі (немає провайдера для netplan). Це стосується нашого програмного забезпечення на панелі керування (стабільна серія), де ми не хочемо додавати нового постачальника конфігурації мережі ...
Nuxwin

3
@StephenBoston Я повністю з вами згоден. Однак, навіть якщо Canonical намагатиметься йти вперед, впроваджуючи нові технології, це може зробити це менш інвазивно. Я маю на увазі, вибір слід залишити кінцевому користувачеві. Для робочих станцій перехід від ifupdown до netplan, безумовно, не є великою справою, але коли вам доводиться мати справу з серверами Ubuntu, це вже інша історія, оскільки більшість стабільних програмних програм не потребують лише адаптерів ... Це була однакова історія для systemd. Я маю справу з повсякденністю Debian і Ubuntu. Проблема Ubuntu полягає в тому, що вони не дуже переймаються зворотною сумісністю.
Nuxwin

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

1
Крім того, якщо ви використовуєте dns-domainі dns-searchу файлі інтерфейсів, ви повинні налаштувати Domainsпараметр у разрешенной.conf, я думаю? У будь-якому разі, чудова робота, яка все разом тут, напевно, врятувала мені багато часу :)
OttoEisen

10

Команда Netplan опублікувала офіційну відповідь на свої поширені запитання тут :

Як повернутися до ifupdown

...

У запущеній системі netplan можна видалити, встановивши ifupdown і налаштувавши / etc / network / інтерфейси вручну, як це робили користувачі раніше.

Під час встановлення користувач може вирішити використовувати ifupdown, попередньо встановивши netcfg / do_not_use_netplan = true. Це робиться шляхом додавання попередньо попереднього рядка до командного рядка під час завантаження інсталяційного носія (тобто в меню завантаження медіа-завантаження, натисніть F6, введіть 'e' та додайте до командного рядка).

Дивіться відповідь Nuxwin для більш повних інструкцій.


9

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


1
як це відповідає на питання?
Pierre.Vriens

@Dan Desjardins Дивіться прийняту відповідь щодо вирішення проблеми DNS. В основному, записи DNS, які ви поміщаєте у файл ifupdown INTERFACES (5), є актуальними лише тоді, коли ви використовуєте resoluvconf (8) або подібні. Для вирішувача заглушки DNS, передбаченого системою SYSTEMD-RESOLVED.SERVICE (8, потрібно додати свій DNS у файл /etc/systemd/ riješen.conf. Це робитиме їх стійкими. Іншим рішенням є відключення системи, вирішеної SYSTEMD. SERVICE (8) сервіс та встановлення / налаштування resolutionvconf (8). Сподіваюся, що я досить зрозумілий.
Nuxwin

2

Чому б просто не налаштувати з netplan?

Що ж, як налаштовано в 18.04-Desktop, це єдина лінія, яка передає контроль над усіма інтерфейсами NetworkManager.

Хоча це, мабуть, підходить для 95% користувачів, пам’ятайте, що NetworkManager запускається лише після входу в сеанс.

Якщо ви хочете, щоб ваша машина працювала як сервер / робочий стіл, наприклад, почати подавати файли на локальні машини, виконуючи функції сервера VNP тощо ... або що-небудь "фантазійне", перш ніж хтось колись увійде в систему, просто простим фактом є далі, у вас виникнуть проблеми з тим, як він налаштований у стандартному 18.04-Desktop.

Звичайно, альтернативою було б використання конфігурації сервер-Netplan, яка, наскільки я прочитав (не перевіряв сам), передає контроль за системою-мережею. У цьому випадку ви краще дізнаєтесь, як systemd робить речі як заміну старого System V init.

Якщо ви підете цим шляхом, вам все одно доведеться змінити yaml netplan, оскільки в настільній версії управління надається 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

Потім перезавантажте, і це повинно працювати нормально.

Відомий хороший конфігуратор прийшов з конфігурації підключеної 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

... де користувач - ваше ім'я користувача.

Тепер перевірте, щоб переконатися, що файл справді зникла:

ls /etc/netplan

Тепер внесіть ваші доповнення до / etc / network / інтерфейсів за потребою.

Перезавантажте.

Будь-яке поліпшення?

Виноска: Точний процес для цього важко знайти. Можливо, нам буде потрібно трохи уточнити, як ми йдемо.


Мені доведеться спробувати це і подивитися, як це йде. Єдине інше питання - як застосувати зміни без перезавантаження. У минулому ви могли б використовувати 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!
JanC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.