Comment configurer une IP statique sur Ubuntu Server 18.04


29

J'ai vu des gens dire que le fichier pour définir l'IP statique est toujours /etc/network/interfaces

Et j'ai vu d'autres personnes dire qu'en 18.04, c'est maintenant /etc/netplan(ce qui semble mécontent)

J'ai essayé de mettre ceci:

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]

Dans mon /etc/netplan/50-cloud-init.yamlet en train de faire, sudo netplan applymais cela tue juste la connexion des serveurs à Internet.


Est-ce un bureau ou un serveur?
user68186

S'agit-il d'une nouvelle installation ou mise à niveau 18.04 à partir d'une autre version?
WinEunuuchs2Unix

Désolé, j'aurais dû dire cela dans le texte, c'est une nouvelle installation du serveur 18.04.
final20

La solution la plus simple pour moi était de spécifier une adresse IPv4 statique lors de l'installation (avec sous-réseau, passerelle, etc.). Remplissez simplement certains champs de l'assistant, sans jouer avec les fichiers de configuration.
Uwe Keim

Vous pouvez également le faire sur des routeurs. Les étapes sont explicites dans la configuration du routeur.
EODCraft Staff

Réponses:


13

Il s'agit d'une instruction IP statique dans Ubuntu-Server 18.04

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

Remplacez ensuite votre configuration, par exemple, les lignes suivantes:

# 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]

Appliquer les modifications:

$ sudo netplan apply

Si vous rencontrez des problèmes, exécutez:

$ sudo netplan --debug apply

[ REMARQUE ]:

  • /24 est équivalent à 255.255.255.0
  • ens160 est votre nom ethernet, vous pouvez l'obtenir en utilisant $ ifconfig
  • La configuration d' interface réseau d' Ubuntu 16.04 et 14.04 a une méthode différente.
  • Le fichier est au format YAML : utilisez des espaces, pas de tabulations.

impossible de faire un ping après l'attribution d'une adresse IP statique
user2763554

OK .... je suis capable de cingler après avoir faitservice networking restart
user2763554

1
Je ne ferais pas ça car ce fichier est généré par CloudInit
Ludovic Kuty

13

Toutes les réponses vous disant de modifier directement /etc/netplan/50-cloud-init.yamlsont fausses puisque CloudInit est utilisé et générera ce fichier. Dans Ubuntu 18.04.2, il est clairement écrit à l'intérieur du fichier:

$ 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

Vous ne devez donc pas modifier ce fichier, mais celui ci-dessous /etc/cloud/cloud.cfg.d/si vous souhaitez toujours utiliser CloudInit.

Une autre façon consiste à désactiver complètement CloudInit en créant d'abord un fichier vide /etc/cloud/cloud-init.disabled(voir https://cloudinit.readthedocs.io/en/latest/topics/boot.html ), puis les autres réponses sont OK. Sous Ubuntu 18.04.2 je devais utiliser dpkg-reconfigure cloud-initpour le laisser prendre en compte le fichier /etc/cloud/cloud-init.disabled. Je pense que c'est un peu bizarre.

Je vous suggère de renommer le fichier (pas le bon nom car 50-cloud-init.yamlpensons qu'il utilise toujours CloudInit).

Ensuite, vous pouvez vous retrouver avec un nom de fichier /etc/netplan/01-netcfg.yamlqui contient la configuration ci-dessous. Notez l'utilisation du networkdmoteur de rendu au lieu de NetworkManagercar la configuration est sur un serveur.

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]

2
Cela fonctionne très bien. Ce devrait être la meilleure réponse. 50-cloud-init.yaml comme indiqué ne doit pas être modifié.
Relique du

2
Si vous utilisez toujours CloudInit, vous devez faire un sudo cloud-init clean -rpour obtenir le changement, selon la réponse de veperr (du moins pour moi sur Ubuntu Server 18.04.3).
Stuart Rossiter

1
... plus la rendererligne n'est plus valide, semble-t-il (et est manquante dans la version de base du fichier que vous éditez).
Stuart Rossiter

6

Ubuntu 18.04 utilise maintenant Netplan pour configurer les interfaces réseau, donc la configuration doit être faite dans le fichier /etc/netplan/50-cloud-init.yaml, la documentation conseille de ne plus jouer avec l'ancien fichier /etc/network/interfaces. J'ai utilisé cette configuration avec ma machine virtuelle Ubuntu Server et cela fonctionne jusqu'à présent, assurez-vous simplement que les informations sont correctes; le optional: trueparamètre accélère soi-disant le temps de démarrage en ne vérifiant pas si l'interface est connectée ou non, c'est par défaut, il n'est pas non plus nécessaire de déclarer des valeurs non utilisées, par exemple DHCP, si elles sont absentes, elles sont considérées comme désactivées, également le le rendu par défaut dans Ubuntu Server est networkddonc inutile de le déclarer. En prenant les informations de votre message, cela devrait être comme ceci:

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

Une fois que vous avez enregistré le fichier, exécutez sudo netplan --debug applyl' debugindicateur produira plus d'informations et peut aider à détecter les erreurs. Vérifiez le câble Ethernet, si vous examinez virtuellement la configuration de la machine virtuelle. Si vous utilisez un WLAN, j'ai lu qu'il est un peu plus difficile à configurer, mais je n'ai pas encore configuré de machine connectée au WiFi avec cette version de serveur.

Si vous voulez plus d'informations sur Netplan, il existe un site Web, il a quelques exemples de configuration de base.

https://netplan.io/


5

Le fichier de configuration est au format YAML : n'utilisez pas TAB lors de la configuration du fichier. Cela ne fonctionne qu'avec SPACE .

C'était mon problème.


4

J'ai trouvé une autre façon d'utiliser cloud-init.

  1. Modifiez le fichier /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg- le contenu semble être le même que dans / etc / netplan.
  2. nettoyer, redémarrer et réinitialiser cloud-initavec cette commande:

    sudo cloud-init clean -r
    
  3. C'est ça! Votre système redémarrera, cloud-initréinitialisera et récupérera les modifications /etc/cloud/cloud.cfg.d/50-curtin-networking.cfget les appliquera /etc/netplan/50-cloud-init.yamlet tout ira bien. Vérifiez avec ifconfig.


0

C'est le paramètre qui le fait fonctionner.

$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

redémarrez le serveur

changez eth0 en votre adaptateur, découvrez votre adaptateur en utilisant ifconfig.


0

Pour trouver les interfaces Ethernet disponibles, utilisez ip link show

Modifiez ensuite le fichier 50-cloud-init.yaml à l'aide de $sudo nano /etc/netplan/50-cloud-init.yaml

Ajoutez la configuration des interfaces disponibles comme eth0: et eth1:

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  

Utilisez ensuite la commande $sudo netplan applypour appliquer les modifications.


0

Comment configurer une IP statique sur Ubuntu Server 18.04

Modifiez ensuite le fichier 50-cloud-init.yaml à l'aide de$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

Appliquer les modifications:

$ sudo netplan apply


Je ne ferais pas ça car ce fichier est généré par CloudInit.
Ludovic Kuty

Pourquoi oh pourquoi chaque guide pour définir une adresse IP statique le 18.04 me dit-il de modifier un fichier yaml qui dit que c'est un fichier créé dynamiquement qui ne persistera pas? Une autre blague cruelle des développeurs d'Ubuntu qui pensent qu'il est juste de casser les choses par défaut ...
Bigtexun

0

La configuration du réseau dans 18.04 est gérée via netplan et configurée avec cloud-init. Pour modifier votre configuration réseau, modifiez le 50-curtin-networking.cfgfichier dans /etc/cloud/cloud.cfg.d/. Si ce fichier n'existe pas, créez-le.

Trouvez le nom de votre interface

ip address show

Modifier / créer le fichier de configuration réseau cloud-init

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

Pour définir une adresse IP statique, utilisez la clé des adresses, qui prend une liste d'adresses (IPv4 ou IPv6), ainsi que la longueur du préfixe de sous-réseau (par exemple / 24). Des informations sur la passerelle et le DNS peuvent également être fournies:

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]

Vous pouvez trouver plus d'options de configuration sur https://netplan.io/examples

Rechargez la configuration cloud-init. Cela redémarrera votre serveur.

sudo cloud-init clean -r
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.