So richten Sie eine statische IP unter Ubuntu Server 18.04 ein

29

Ich habe gesehen, dass einige Leute sagen, die Datei zum Festlegen der statischen IP ist immer noch /etc/network/interfaces

Und ich habe andere Leute gesehen, die sagten, dass es im 18.04 jetzt losgeht /etc/netplan(worüber die Leute unglücklich zu sein scheinen)

Ich habe versucht, dies auszudrücken:

version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.9/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

In meinem /etc/netplan/50-cloud-init.yamlund im Tun sudo netplan applyaber bricht das gerade die Serververbindung zum Internet ab.

final20
quelle
Ist es ein Desktop oder ein Server?
user68186
Handelt es sich um eine neue 18.04-Installation oder ein Upgrade von einer anderen Version?
WinEunuuchs2Unix
Entschuldigung, ich hätte das im Text sagen sollen, es ist eine Neuinstallation des 18.04 Servers.
final20
Die einfachste Lösung für mich war, direkt während der Installation eine statische IPv4-Adresse anzugeben (zusammen mit Subnetz, Gateway usw.). Füllen Sie einfach einige Felder des Assistenten aus, ohne die Konfigurationsdateien zu verändern.
Uwe Keim
Sie können dies auch auf Routern tun. Die Schritte in der Router-Konfiguration sind selbsterklärend.
EODCraft Staff

Antworten:

13

Dies ist eine statische IP-Anweisung in Ubuntu-Server 18.04

$ sudo nano /etc/netplan/50-cloud-init.yaml

Ersetzen Sie dann Ihre Konfiguration, z. B. die folgenden Zeilen:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
     dhcp4: no
     addresses: [192.168.1.137/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

Änderungen übernehmen:

$ sudo netplan apply

Falls Sie auf einige Probleme stoßen, führen Sie Folgendes aus:

$ sudo netplan --debug apply

[ HINWEIS ]:

  • /24 ist gleichbedeutend mit 255.255.255.0
  • ens160 Ist Ihr Ethernet-Name, können Sie ihn verwenden $ ifconfig
  • Die Konfiguration der Ubuntu 16.04- und 14.04- Netzwerkschnittstellen hat eine andere Methode.
  • Die Datei ist im YAML-Format : Verwenden Sie Leerzeichen, keine Tabulatoren.
Benyamin Jafari
quelle
Pingen nach Zuweisung einer statischen IP-Adresse nicht möglich
user2763554
OK .... Ich kann danach service networking restart
pingen
1
Das würde ich nicht tun, da diese Datei von CloudInit
Ludovic Kuty
13

Alle Antworten, die Sie zum direkten Bearbeiten /etc/netplan/50-cloud-init.yamlauffordern , sind falsch, da CloudInit verwendet wird und diese Datei generiert. In Ubuntu 18.04.2 ist es klar in der Datei geschrieben:

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eno1:
            dhcp4: true
    version: 2

Sie sollten diese Datei also nicht bearbeiten, sondern die unter, /etc/cloud/cloud.cfg.d/wenn Sie CloudInit weiterhin verwenden möchten.

Eine andere Möglichkeit besteht darin, CloudInit vollständig zu deaktivieren, indem Sie zuerst eine leere Datei erstellen /etc/cloud/cloud-init.disabled(siehe https://cloudinit.readthedocs.io/en/latest/topics/boot.html ). Die anderen Antworten sind in Ordnung. Unter Ubuntu 18.04.2 musste ich damit dpkg-reconfigure cloud-initdie Datei berücksichtigen lassen /etc/cloud/cloud-init.disabled. Ich finde das ein bisschen komisch.

Ich empfehle Ihnen, die Datei umzubenennen (nicht der richtige Name, da 50-cloud-init.yamlwir annehmen, dass CloudInit weiterhin verwendet wird).

Dann erhalten Sie möglicherweise einen Dateinamen, /etc/netplan/01-netcfg.yamlder die folgende Konfiguration enthält. Beachten Sie die Verwendung des networkdRenderers, anstatt NetworkManagerdass sich die Konfiguration auf einem Server befindet.

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      addresses: [192.168.1.246/24]
      gateway4: 192.168.1.1
      nameservers:
         addresses: [192.168.1.1]
Ludovic Kuty
quelle
2
Es funktioniert super Dies sollte die beste Antwort sein. 50-cloud-init.yaml sollte wie angegeben nicht geändert werden.
Relikt
2
Wenn Sie weiterhin CloudInit verwenden, müssen Sie sudo cloud-init clean -rgemäß der Antwort von veperr eine Aktion ausführen, um die Änderung zu übernehmen (zumindest für mich unter Ubuntu Server 18.04.3).
Stuart Rossiter
1
... und die rendererZeile scheint nicht mehr gültig zu sein (und fehlt in der Basisversion der von Ihnen bearbeiteten Datei).
Stuart Rossiter
6

Ubuntu 18.04 verwendet jetzt Netplan, um die Netzwerkschnittstellen zu konfigurieren. Die Konfiguration muss in der Datei erfolgen /etc/netplan/50-cloud-init.yaml. In der Dokumentation wird empfohlen, nicht mehr mit der alten Datei zu arbeiten /etc/network/interfaces. Ich habe diese Konfiguration mit meiner virtuellen Ubuntu Server-Maschine verwendet und sie funktioniert bis jetzt. Vergewissern Sie sich nur, dass die Informationen korrekt sind. Die optional: trueEinstellung soll die Startzeit verkürzen, indem nicht überprüft wird, ob die Schnittstelle angeschlossen ist oder nicht. Dies ist die Standardeinstellung. Außerdem müssen keine nicht verwendeten Werte deklariert werden, z. B. DHCP Der Standard-Renderer in Ubuntu Server ist networkdso, dass er nicht deklariert werden muss. Wenn Sie die Informationen aus Ihrem Beitrag übernehmen, sollte dies folgendermaßen aussehen:

network:
    ethernets:
        eht0:
            addresses:
            - 192.168.1.9/24
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
            optional: true
    version: 2

Sobald Sie die Datei gespeichert haben, gibt sudo netplan --debug applydas debugFlag weitere Informationen aus und kann helfen, Fehler zu erkennen. Überprüfen Sie das Ethernet-Kabel, wenn Sie die VM-Konfiguration virtuell überprüfen. Wenn ich ein WLAN verwende, habe ich gelesen, dass das Einrichten etwas komplizierter ist, aber ich habe noch keinen Computer eingerichtet, der mit dieser Serverversion mit WLAN verbunden ist.

Wenn Sie weitere Informationen zu Netplan wünschen, gibt es eine Website mit einigen grundlegenden Konfigurationsbeispielen.

https://netplan.io/

badger_8007
quelle
5

Die Konfigurationsdatei hat das YAML-Format : Verwenden Sie beim Konfigurieren der Datei nicht die Tabulatortaste . Es funktioniert nur mit SPACE .

Das war mein Problem.

HubbleT
quelle
4

Ich habe einen anderen Weg mit Cloud-Init gefunden.

  1. Bearbeiten Sie die Datei /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg- der Inhalt scheint derselbe zu sein wie in / etc / netplan.
  2. Bereinigen, neu starten und neu initialisieren cloud-initmit diesem Befehl:

    sudo cloud-init clean -r
    
  3. Das ist es! Ihr System wird neu gestartet, cloud-initinitialisiert und übernimmt die Änderung in /etc/cloud/cloud.cfg.d/50-curtin-networking.cfgund wendet sie auf an, /etc/netplan/50-cloud-init.yamlund alles wird gut. Bestätigen Sie mit ifconfig.

veperr
quelle
0

Dies ist die Einstellung, die es funktioniert.

$sudo nano /etc/netplan/50-cloud-init.yaml

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
  version: 2  

$sudo netplan apply

Starten Sie den Server neu

Ändern Sie eth0 in Ihren Adapter. Ermitteln Sie Ihren Adapter mit ifconfig.

Digerate
quelle
0

Um verfügbare Ethernet-Schnittstellen zu finden, verwenden Sie ip link show

Bearbeiten Sie anschließend die Datei 50-cloud-init.yaml mit $sudo nano /etc/netplan/50-cloud-init.yaml

Fügen Sie die Konfiguration für verfügbare Schnittstellen wie eth0: und eth1: hinzu.

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
     eth0:
     addresses:
     - 192.168.1.9/24
     dhcp: false
  version: 2  

Verwenden Sie dann den Befehl $sudo netplan apply, um die Änderungen zu übernehmen.

Anand Prakash Singh
quelle
0

So richten Sie eine statische IP unter Ubuntu Server 18.04 ein

Bearbeiten Sie anschließend die Datei 50-cloud-init.yaml mit$sudo vim /etc/netplan/50-cloud-init.yaml


network:
  ethernets:
    eno1:
        addresses:
        - 10.0.1.10/24
        dhcp4: false
        gateway4: 10.0.1.1
        nameservers:
            addresses:
            - 10.0.1.2
            search: []
version: 2

Änderungen übernehmen:

$ sudo netplan apply

yousif3350
quelle
Ich würde das nicht tun, da diese Datei von CloudInit generiert wird.
Ludovic Kuty
Warum? Warum fordert mich jede Anleitung zum Festlegen einer statischen IP am 18.04 auf, eine yaml-Datei zu bearbeiten, die besagt, dass es sich um eine dynamisch erstellte Datei handelt, die nicht bestehen bleibt? Ein weiterer grausamer Witz von den Ubuntu-Entwicklern, die denken, dass es in
Ordnung
0

Die Netzwerkkonfiguration in 18.04 wird über netplan verwaltet und mit cloud-init konfiguriert. Um Ihre Netzwerkkonfiguration zu ändern, bearbeiten Sie die 50-curtin-networking.cfgDatei in /etc/cloud/cloud.cfg.d/. Wenn diese Datei nicht vorhanden ist, erstellen Sie sie.

Finden Sie Ihren Schnittstellennamen

ip address show

Bearbeiten / Erstellen Sie die Cloud-Init-Netzwerkkonfigurationsdatei

sudo nano /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

Verwenden Sie zum Festlegen einer statischen IP-Adresse den Adressschlüssel, der eine Liste von (IPv4- oder IPv6-) Adressen zusammen mit der Subnetz-Präfixlänge (z. B. / 24) enthält. Gateway- und DNS-Informationen können ebenfalls bereitgestellt werden:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.1.9/24
      gateway4: 192.168.1.1
      nameservers:
          addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

Weitere Konfigurationsoptionen finden Sie unter https://netplan.io/examples

Laden Sie die Cloud-Init-Konfiguration neu. Dadurch wird Ihr Server neu gestartet.

sudo cloud-init clean -r
Ryan
quelle