Résoudre les «réponses RTNETLINK: le fichier existe» lors de l’exécution de ifup

43

J'ai eu ce problème quand j'ai eu mon nouveau dongle Wi-Fi et que j'ai vu quelques personnes avec le même problème. En gros, quand j'ai une interface configurée et que je veux permuter sur l’autre, cette erreur est générée:

RTNETLINK répond: Le fichier existe
Impossible d’afficher eth0

ou quelque chose de similaire.

/etc/network/interfaces fichier:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    gateway 192.168.1.1
avidreader610
la source
1
Vous ne pouvez pas avoir plus d’une passerelle par défaut sous Linux. En particulier, vous ne pouvez pas avoir la même passerelle par défaut sur deux interfaces différentes. Et vous ne pouvez pas avoir le même réseau sur deux interfaces différentes.
Arrivée
@ceving il n'y a aucun problème à avoir deux interfaces dans le même réseau. Il n'y a également aucun problème si ces deux interfaces ont la même passerelle. La table de routage est analysée de manière stricte et vous pouvez imaginer les entrées en cours destination IP -> interface. Ainsi, il sera envoyé à la passerelle via l'interface qu'il analyse en premier (à partir du bas) dans la table de routage.
George
si vous utilisez IPV6, ajoutez toujours une longueur de réseau: xxxx: xxxx: ... :: 1/64 sur l'adresse
fcm

Réponses:

46

Si la solution fournie par @ theoB610 ne fonctionne toujours pas, vous devrez peut-être vider le wlan0périphérique avant ifupet ifdown.

sudo ip addr flush dev wlan0

Ceci est un problème pas trop spécifique à Raspberry Pi, un problème similaire s'est produit et a été résolu dans les réseaux câblés ici (d'où j'ai dérivé la solution pour mon problème avec le Pi).

Ébe Isaac
la source
1
J'avais ce problème sur un serveur HP ProLiant (!) Et cela a résolu le problème.
sudo
1
Excellente solution. Le problème de base est qu'une configuration précédente, automatique ou manuelle (telle que l'exécution de ifconfig à partir de la ligne cmd) persiste. La commande flush corrige cette situation.
kmarsh
1
J'ai eu ce problème quand il y a des /etc/sysconfig/network-scripts/ifcfg-*fichiers mal formés , provoquant par NetworkManager ne pas aimer certaines installations et créer un fichier de remplacement, créant ainsi plusieurs fichiers supplémentaires et causant l'erreur RTNETLINK answers: File exists. Supprimer les cassés (ceux qui ne figurent pas dans un profil) semble être une solution.
Wilf
2
Ne jamais copier-coller sur un serveur de production. J'ai remplacé wlan0 par eth0 et l'interface est immédiatement tombée en panne et je ne veux plus revenir.
Fusseldieb
1
Intéressant que personne ne fourni plus simple et la règle la plus sûre méthode: reboot. Par exemple, avec l'interface de vidage, j'avais des problèmes - mon interface / IP s'est détériorée et je ne pouvais me connecter que directement sur une console ... le redémarrage est donc toujours la voie à suivre pour moi.
Stamster
24

Je pense qu'une solution peut être trouvée dans la résolution de “RTNETLINK answers: le fichier existe” lors de l'exécution d'ifup (blog de Lennart); cela a certainement résolu le problème pour moi.

En principe, vous ne pouvez attribuer qu’une seule passerelle dans votre fichier d’interfaces. Supprimez toutes les lignes en double qui déterminent la passerelle afin qu'elle n'apparaisse qu'une seule fois.

Fichier modifié / etc / network / interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    #gateway 192.168.1.1  <= Either comment or remove this line

Nous remercions Lennart pour avoir résolu ce problème!

avidreader610
la source
Je suis tombé sur cette réponse via Google. C'est ce qui a fonctionné pour moi sur une machine virtuelle Ubuntu sur Hyper-V
abhijit
8

J'ai résolu par:

sudo ifup --ignore-errors wlan0

Après cette commande, ifdown et ifup démarré fonctionnent correctement.

mauretto
la source
Ceci est utile après l'échec du "redémarrage du réseau de service", merci. :)
Adambean
1

pas:

1 check-> ip route(si ip route default est différent de l'interface requise, suivez les étapes 2d et 3)

2 sudo ip route del default(supprimer cette interface par défaut)

3 sudo ip route add default via ip_address dev interface_name(ajoutez votre interface requise comme ça)

Rahul Patil
la source
0

Dans mon cas, une autre connexion fonctionnait toujours - une fois que j'ai retiré cette interface avec ifdown eth0, celle qui m'intéressait (wlan0) est apparue proprement.

Je ne recommande pas d'utiliser l'option --ignore-errors

Tamale
la source
0

Je suis tombé sur cela en jouant avec VMWare vCenter. Si vous êtes dans le même bateau, vous devez avoir installé VMWare Tools, perl et net-tools avec votre gestionnaire de paquets avant de créer le modèle / instantané de la machine virtuelle.

Turiyag
la source
-1

Forcer de / configuration

ifdown --force --verbose ethX && ifup --force --verbose ethX
Nico
la source