Ubuntu 18.04: Wechsle zurück zu / etc / network / interfaces

44

Ab irgendwann um Ubuntu 18.04, stoppte die Ubuntu Devs die klassische Verwendung /etc/init.d/networkingund /etc/network/interfacesVerfahren zur Konfiguration des Netzwerks und wechselte zu einem gewissen Sache genannt netplan. Dies hat viele Leute sehr wütend gemacht und wurde allgemein als ein schlechter Schachzug angesehen. Ist es möglich, netplandie richtige /etc/network/interfacesMethode zum Konfigurieren des Netzwerks zu entfernen und anzuwenden ?

jdgregson
quelle
2
Warum nicht einfach mit netplan konfigurieren? In den meisten Situationen ist dies ziemlich einfach.
chili555
3
@ chili555 Es kann sein, dass ich nur die Änderung akzeptieren und etwas Neues lernen muss. Ich möchte nur wissen, ob es trivial ist, wieder so zu werden, wie es sein sollte. Ähnlich wie systemdverstehe ich, dass disruptive Veränderung manchmal von Vorteil sein kann und umarmt werden. Dies ist jedoch keinesfalls eine der Zeiten, in denen die Änderung erforderlich oder nützlich war.
Jdgregson
1
Es ist nicht trivial und im Fehlerfall nicht einfach umzukehren. Wenn Sie gefährlich leben möchten, schlage ich Ihnen gerne eine Antwort vor. Andererseits können wir netplan in wenigen Minuten konfigurieren. Was bevorzugen Sie? PS: Ich gebe nicht vor, vollständig zu verstehen, wie Netplan unter Ausschluss von /etc/network/interfacesin das größere Systembild passt. Ich kann nur darauf vertrauen, dass diejenigen, die die Änderung eingeführt haben, wissen, warum sie besser passt.
chili555
1
Oder einfach netplan richtig konfigurieren und fertig.
chili555
1
@ chili555 Netplan unterstützt keine virtuellen Netzwerkschnittstellen. Siehe hier: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

Antworten:

43

Das folgende Verfahren funktioniert für Ubuntu 18.04 (Bionic Beaver)

I. Installieren Sie das ifupdown- Paket neu:

# apt-get update
# apt-get install ifupdown

II. Konfigurieren Sie Ihre Datei / etc / network / interfaces mit folgenden Konfigurationszeilen:

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. Nehmen Sie die Konfiguration vor (kein Neustart erforderlich):

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

IV. Deaktivieren und entfernen Sie die unerwünschten Dienste:

# 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

Dann sind Sie fertig.

Hinweis: Sie MÜSSEN die Werte natürlich an Ihr System anpassen (Netzwerk, Schnittstellenname ...).

V. DNS-Resolver

Da Ubuntu Bionic Beaver (18.04) nutzt das DNS - Stub - Resolver als vorgesehen von systemd-RESOLVED.SERVICE (8), Sie sollten auch die DNS , um einen Kontakt in die /etc/systemd/resolved.conf Datei hinzufügen. Zum Beispiel:

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

und starten Sie den vom System aufgelösten Dienst anschließend neu:

# systemctl restart systemd-resolved

Die oben gezeigten DNS-Einträge in der Datei ifupdown INTERFACES (5) sind nur relevant, wenn Sie RESOLVCONF (8) oder ähnliches verwenden.

Nuxwin
quelle
9
Nun, f *** sie. Nur apt-get installwenn Sie keine Netzwerkkonfiguration haben. Was für eine geniale Idee, Canonical.
Velkan
1
@Velkan Du kannst dein Netzwerk immer mit netplan vorkonfigurieren und später wieder auf ifupdown umstellen;) Aber ich habe dir zugestimmt. Irgendwie kanonisch schlechte Entscheidungen treffen. Zum Beispiel brechen sie Software, die für die Netzwerkkonfiguration auf ifupdown angewiesen ist (kein Anbieter für netplan). Dies ist der Fall für unsere
Systemsteuerungssoftware
3
@StephenBoston Ich stimme dir voll und ganz zu. Selbst wenn Canonical versucht, neue Technologien einzuführen, könnte dies weniger invasiv erfolgen. Ich meine, die Wahl sollte dem Endbenutzer überlassen bleiben. Für Workstations ist der Wechsel von ifupdown zu netplan sicherlich keine große Sache, aber wenn Sie sich mit Ubuntu-Servern befassen müssen, ist das eine andere Geschichte, da die meisten stabilen Softwares nicht unbedingt Adapter bereitstellen müssen ... Das war die gleiche Geschichte für systemd. Ich habe jeden Tag mit Debian und Ubuntu zu tun. Das Problem mit Ubuntu ist, dass ihnen die Abwärtskompatibilität egal ist.
Nuxwin
1
Kleine Korrektur: # systemctl unmak networking-># systemctl unmask networking
Santosh
1
Außerdem, wenn Sie dns-domainund dns-searchin der Interface-Datei verwenden, sollten Sie den DomainsParameter in der resolved.conf konfigurieren , denke ich? Wie auch immer, großartige Arbeit, die alles hier zusammengestellt hat, hat mir wahrscheinlich viel Zeit gespart :)
OttoEisen
10

Das Netplan Team hat eine offizielle Antwort auf ihren FAQ gepostet hier :

So kehren Sie zu ifupdown zurück

...

Auf einem laufenden System kann netplan entfernt werden, indem ifupdown installiert und / etc / network / interfaces manuell konfiguriert wird, wie es die Benutzer zuvor getan haben.

Während der Installation kann ein Benutzer ifupdown verwenden, indem er netcfg / do_not_use_netplan = true voreinstellt. Dazu wird beim Booten des Installationsmediums die Voreinstellungszeile zur Befehlszeile hinzugefügt (dh drücken Sie im Startmenü des Installationsmediums die Taste F6, geben Sie 'e' ein und fügen Sie sie zur Befehlszeile hinzu).

Eine ausführlichere Anleitung finden Sie in der Antwort von Nuxwin.

jdgregson
quelle
9

Netplan und yaml sind in der Nur-Server-Umgebung bestenfalls zerbrechlich (Einrückungsfehler kosten Sie). Interfaces war so verzeihend, dass es die Verwaltung der Netzwerkeinstellungen auf einem Server ziemlich einfach machte.
Netplan führt neue Ebenen ein. Das eigentliche Problem ist jedoch, dass U18 ifupdown bricht und den Job mit NetPlan nicht beendet. Wenn Sie durch eine Neuinstallation zu / etc / network / interfaces zurückkehren, funktioniert die DNS-Verwaltung in der Interface-Datei nicht mehr. Alle DNS-Nameserver-Einträge werden ignoriert. Stattdessen wird die DNS in /etc/resolv.conf festgelegt. Sie können diese Datei jedoch nicht bearbeiten, da sie bei jedem Systemstart neu geschrieben wird. WTF? Netplan wurde so konzipiert, dass es von einer grafischen Benutzeroberfläche verwaltet werden kann, sodass diejenigen von uns im Nur-Server-Camp ein zerbrechliches System haben, das wir auf Zehenspitzen durcharbeiten müssen. Nicht gutes Ubuntu!
Warum geben Sie uns nicht eine Möglichkeit, die Einstellungen in / etc / network / interfaces beim Booten in netplan umzuleiten, um uns beim Beenden von netplan zu helfen?

Dan Desjardins
quelle
1
Wie beantwortet dies die Frage?
Pierre.Vriens
@Dan Desjardins Siehe die akzeptierte Antwort zum DNS-Resolver-Problem. Grundsätzlich sind die DNS-Einträge, die Sie in die Datei ifupdown INTERFACES (5) einfügen, nur relevant, wenn Sie resolvconf (8) oder ähnliches verwenden. Für den von SYSTEMD-RESOLVED.SERVICE (8 bereitgestellten DNS-Stub-Resolver müssen Sie Ihren DNS in die Datei /etc/systemd/resolved.conf einfügen. Dadurch werden sie dauerhaft. Eine andere Lösung besteht darin, SYSTEMD-RESOLVED zu deaktivieren. SERVICE (8) Service und Installation / Setup resolvconf (8) In der Hoffnung, dass ich klar genug bin
Nuxwin
2

Warum nicht einfach mit netplan konfigurieren?

Nun, wie es in 18.04-Desktop konfiguriert ist, ist es eine einzige Leitung, die die Kontrolle über alle Schnittstellen zu NetworkManager übergibt.

Dies ist wahrscheinlich für 95% der Benutzer geeignet. Denken Sie jedoch daran, dass NetworkManager nur ausgeführt wird, wenn Sie bei einer Sitzung angemeldet sind.

Wenn Sie möchten, dass Ihr Computer als Server / Desktop fungiert, z. B. Dateien für lokale Computer bereitstellt, als VNP-Server fungiert usw. oder etwas "Fantasievolles", bevor sich jemand anmeldet, und zwar einfach so Wenn Sie diese Option aktivieren, haben Sie Probleme mit der Konfiguration in Standard 18.04-Desktop.

Die Alternative wäre natürlich die Verwendung der Server-Netplan-Konfiguration, die, soweit ich gelesen habe (nicht von mir selbst geprüft), die Kontrolle stattdessen an systemd-networkd übergibt. In diesem Fall sollten Sie besser lernen, wie systemd die alten System V init ersetzt.

Sollten Sie diesen Weg einschlagen, müssen Sie noch Änderungen am netplan yaml vornehmen, da bei einer Desktop-Version das Steuerelement an NetworkManager übergeben wird.

Zakhar
quelle
3
Es gibt mindestens einen Grund: Netplan unterstützt openvswitch nicht.
Kamilion
5
netplan unterstützt keine IP-Aliase (eth0: 0-Stil). Ich kann nicht glauben, wie so etwas den Weg in den Ubuntu-Server findet!
Hamid Fadishei
Weil meine netplanVerzeichnisse leer sind!
DSGDFG
Der NetworkManager-Dienst startet ziemlich früh und erfordert keine Sitzung oder einen angemeldeten Benutzer.
Donnerstag,
1

Der Schlüssel ist zu wissen, dass dies cloud.initdas eigentliche Steuerungsprogramm ist.
Davon abgesehen ist die Zeile in der netplanKonfigurationsdatei "optional: true" obligatorisch.
Das zu wissen, machte es einfach.

Ich habe es gerade entfernt 01-network-manager-all.yamlund kopiert /root/save/. Setzen Sie stattdessen eine bekanntermaßen gute Konfiguration ein, 50-cloud-init.yamlderen Inhalt folgt:

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

Starten Sie dann neu und es sollte gut funktionieren.

Die als funktionierend bekannte Konfiguration stammt von Configure Bonded 802.3ad Network unter Verwendung von netplan unter Ubuntu 18.04 .

pksings
quelle
1
Die Frage hier ist, wie man zurück zu ifupdown wechselt;) In Zukunft sollten Sie versuchen, die Fragen zu beantworten, ohne sie zu verschmutzen, auch wenn es nicht immer einfach ist, sich an das ursprüngliche Thema zu halten;)
Nuxwin
0

Nach dieser Antwort besteht die Lösung darin, alle operativen .yaml-Dateien zu entfernen: Ubuntu 17.10 deaktiviert netplan

Ohne Backup würde ich nichts entfernen. Wir können dies einfach tun, indem wir die Dateien beiseite legen. Suchen Sie zuerst die Dateien:

sudo updatedb
locate netplan | grep yaml

Auf meinem 18.04-System scheint die einzige Betriebsdatei /etc/netplan/01-network-manager-all.yaml zu sein. Lass es uns bewegen:

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

... wobei user Ihr Benutzername ist.

Überprüfen Sie nun, ob die Datei wirklich gelöscht ist:

ls /etc/netplan

Nehmen Sie nun die erforderlichen Ergänzungen in / etc / network / interfaces vor.

Starten Sie neu.

Irgendeine Verbesserung?

Fußnote: Der genaue Vorgang hierfür ist schwer zu finden. Wir müssen vielleicht ein bisschen verfeinern, während wir gehen.

chili555
quelle
Ich werde das versuchen müssen und sehen, wie es geht. Die einzige andere Frage wäre, wie die Änderungen ohne Neustart übernommen werden sollen. In der Vergangenheit könnten Sie ifup/ ifdown, /etc/init.d/networking restart, service networking restartund die systemd Methoden, wie systemctl restart networking, systemctl restart Network-Manager.serviceetc, aber keiner von ihnen für mich möglich war nach Ubuntu 18.04 installieren.
Jdgregson
Was ist das Ergebnis von: sudo ip link set eth0 downgefolgt von: sudo ifup -v eth0Ersetzen Sie natürlich Ihr Interface durch das mythische eth0.
chili555
ifupdownist nicht standardmäßig installiert. Wenn Sie es aufrufen ifup, erfahren Sie nur, wie es installiert wird. Allerdings , sudo ip link set eth0 downgefolgt von sudo ip link set eth0 upder Schnittstelle aus und wieder einschalten läßt.
Jdgregson
Genial! Also bist du gelöst und fertig?
Chili555
Vorsicht, nicht alle * .yaml-Dateien beziehen sich auf netplan. Entfernen Sie daher nur die Dateien in netplan-bezogenen Verzeichnissen!
5.