«RTNETLINK répond: le fichier existe» / etc / network / interfaces Ne contient pas 2 passerelles, alors qu'est-ce qui ne va pas?

14

Voici /etc/network/interfacesle contenu de mon fichier

La seule façon dont cela prend effet est lorsque le système redémarre.

J'essaie de le faire manuellement. Mes tentatives ci-dessous.

auto eth0
    iface eth0 inet static
           address 192.168.1.57
           netmask 255.255.255.0
           gateway 192.168.1.1
           up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
           down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
           up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
           down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

D'abord essayé de courir sudo ifup eth0

et je reçois

RTNETLINK answers: File exists
Failed to bring up eth0.

Le /etc/network/interfacesseul travail quand je redémarre le système

A part ça, j'ai essayé

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

Mais aucun ne fera apparaître les changements dans le interfacesfichier

Ma seule option était sudo ifup eth0et cela donne l'erreur ci-dessus.

Qu'est-ce qui ne va pas?

Wolfgang
la source

Réponses:

8

Modifiez votre fichier de configuration pour supprimer les espaces avant la ifacestrophe afin qu'il ressemble à ceci,

auto eth0
iface eth0 inet static
   address 192.168.1.57
   netmask 255.255.255.0
   gateway 192.168.1.1
   up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
   down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
   up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
   down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20

Le message que vous recevez est juste une indication que l'interface est déjà en place, vous devez donc le faire ifdownavant de le faire ifup. Cependant, vous devez être prudent si vous vous connectez via ssh - vous pouvez vous verrouiller. C'est une façon de le faire:

sudo ifdown eth0 && sudo ifup eth0

Notez comment ces deux commandes sont exécutées sur la même ligne. Et juste une précaution, assurez-vous que vous pouvez accéder à la console du serveur ou redémarrer le serveur en cas de problème.

dtoubelis
la source
3
exécuter sudo ifdown eth0donne ifdown: interface eth0 not configuredet exécuter sudo ifdown eth0 && ifup eth0 donne la même chose
wolfgang
1
@wolfgang, essayez de supprimer les espaces avant la ifacestrophe dans votre /etc/network/interfacesfichier et ifdown/ifuprecommencez.
dtoubelis
Ça a marché! Je ne m'attendais pas à ce que des espaces auparavant ifacecréent une telle affaire pourriez-vous s'il vous plaît modifier cela dans votre réponse afin qu'il puisse aider quelqu'un? et il doit y avoir un sudoavant ifup-> sudo ifdown eth0 && sudo ifup eth0sinon j'obtiens une permission deniederreur
wolfgang
1

Essayez de rechercher / run / network / ifstate et modifiez-le en ajoutant eth (n) = eth (0) si vous ne voyez pas l'éth souhaité.

Ex:

$ cat /run/network/ifstate 
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1

Après cela, utilisez la commande sudo ifdown eth (n) puis sudo ifup eth (n).

alex
la source
1

Pour tous ceux qui se sont retrouvés ici, j'ai dû arrêter toutes les interfaces et tous les ponts, puis décharger les modules avant que l'erreur RTNETLINK ne disparaisse.

ifconfig eth0 down
ifconfig br0 down
rmmod e1000e              # or whatever module your nic uses
modprobe e1000e
service networking start

ou redémarrez simplement.

Kurt
la source
0

Je viens de rencontrer ce problème et aucune des solutions ci-dessus n'a fonctionné pour moi. Je n'ai pas pu changer /run/network/ifstatecar il a été réinitialisé immédiatement à l'ancien état. Cela sudo ifdown eth0 && sudo ifup eth0n'a pas fonctionné non plus.

J'ai ensuite découvert la commande suivante:

sudo ip addr flush dev eth0

qui a résolu le problème.

digijay
la source