J'ai vu des gens dire que le fichier pour définir une adresse 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 que les gens semblent mécontents)
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.yaml
et en faisant Sudo netplan apply
mais cela tue simplement la connexion des serveurs à Internet.
$ Sudo nano /etc/netplan/50-cloud-init.yaml
# 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]
$ Sudo netplan apply
Si vous rencontrez des problèmes, exécutez:
$ Sudo netplan --debug apply
[NOTE]:
/24
est équivalent à 255.255.255.0
ens160
est votre nom ethernet, vous pouvez l'obtenir en utilisant $ ifconfig
Le fichier de configuration est au format format YAML : N'utilisez pas TAB lors de la configuration du fichier. Cela fonctionne seulement avec SPACE.
C'était mon problème.
Ubuntu 18.04 utilise maintenant Netplan pour configurer les interfaces réseau. La configuration doit donc être effectuée dans le fichier /etc/netplan/50-cloud-init.yaml
, la documentation conseillant de ne plus perturber 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 paramètre optional: true
accélère supposément le temps de démarrage en ne vérifiant pas si l'interface est connectée ou non, il s'agit de la valeur par défaut. De plus, il n'est pas nécessaire de déclarer les valeurs non utilisées, par exemple DHCP, si elles sont absentes, elles sont considérées comme désactivées. Le moteur de rendu par défaut sur Ubuntu Server est networkd
. Il n'est donc pas nécessaire de le déclarer. En prenant les informations de votre post, ça devrait être comme ça:
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 le fichier sauvegardé, exécutez Sudo netplan --debug apply
, le drapeau debug
affichera plus d’informations et pourra vous aider à détecter les erreurs éventuelles. Vérifiez le câble Ethernet, si en mode virtuel, passez en revue la configuration VM. Si vous utilisez un réseau local sans fil, 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 souhaitez plus d’informations sur Netplan, il existe un site Web qui contient quelques exemples de configuration de base.
Toutes les réponses vous demandant d’éditer directement /etc/netplan/50-cloud-init.yaml
sont fausses puisque CloudInit est utilisé et va générer ce fichier. Dans Ubuntu 18.04.2, il est clairement écrit dans le 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
Donc, vous ne devriez pas éditer ce fichier mais celui sous /etc/cloud/cloud.cfg.d/
si vous voulez toujours utiliser CloudInit.
Une autre méthode 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 correctes. . Sous Ubuntu 18.04.2, je devais utiliser dpkg-reconfigure cloud-init
pour 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 nom correct puisque 50-cloud-init.yaml
laisse penser qu'il utilise toujours CloudInit).
Ensuite, vous pouvez vous retrouver avec un nom de fichier /etc/netplan/01-netcfg.yaml
qui contient la configuration ci-dessous. Notez l'utilisation du rendu networkd
au lieu de NetworkManager
car 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]
J'ai trouvé un autre moyen d'utiliser cloud-init.
/etc/cloud/cloud.cfg.d/50-curtin-networking.cfg
- le contenu semble être identique à celui de/etc/netplan.nettoie, redémarre et réinitialise cloud-init
avec cette commande:
Sudo cloud-init clean -r
C'est tout! Votre système redémarrera, cloud-init
sera réinitialisé et enregistrera la modification dans /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg
et les appliquera à /etc/netplan/50-cloud-init.yaml
et tout ira bien. Vérifiez avec ifconfig
.
C'est le paramètre qui fait que ça marche.
$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émarrer le serveur
changez eth0 en adaptateur, recherchez votre adaptateur avec ifconfig.
Puis éditez le fichier 50-cloud-init.yaml en utilisant $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
$ Sudo netplan apply
Pour trouver les interfaces Ethernet disponibles, utilisez ip link show
Puis éditez le fichier 50-cloud-init.yaml en utilisant $Sudo nano /etc/netplan/50-cloud-init.yaml
Ajoutez la configuration pour les interfaces disponibles telles que 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
Ensuite, utilisez la commande $Sudo netplan apply
pour appliquer les modifications.