“RTNETLINK responde: o arquivo existe” / etc / network / interfaces Não contém 2 gateways, então o que há de errado?

14

Este é o /etc/network/interfacesconteúdo do meu arquivo

A única maneira de fazer isso é quando o sistema é reiniciado.

Estou tentando fazê-lo manualmente. Minhas tentativas abaixo.

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

Primeiro tentei correr sudo ifup eth0

e eu recebo

RTNETLINK answers: File exists
Failed to bring up eth0.

O /etc/network/interfacesúnico trabalho quando eu reinicio o sistema

Fora isso, eu tentei

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

Mas nenhum deles exibirá as alterações no interfacesarquivo

Minha única opção era sudo ifup eth0e isso dá o erro acima.

o que está errado?

wolfgang
fonte

Respostas:

8

Edite seu arquivo de configuração para remover os espaços antes da ifaceestrofe para que fique assim,

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

A mensagem que você recebe é apenas uma indicação de que a interface já está ativa, então você precisa fazer isso ifdownantes de fazê-lo ifup. No entanto, você precisa ter cuidado se estiver se conectando via ssh - você pode se trancar. Esta é uma maneira de fazer isso:

sudo ifdown eth0 && sudo ifup eth0

Observe como esses dois comandos são executados na mesma linha. E apenas uma precaução, verifique se você pode obter acesso ao console do servidor ou reiniciar o servidor se algo der errado.

dtoubelis
fonte
3
correndo sudo ifdown eth0ifdown: interface eth0 not configurede correr sudo ifdown eth0 && ifup eth0 dá o mesmo
Wolfgang
1
@wolfgang, tente remover os espaços antes da ifaceestrofe no seu /etc/network/interfacesarquivo e faça ifdown/ifupnovamente.
dtoubelis
Isso funcionou! não esperava espaços antes ifacecriaria um negócio tão grande. você poderia editar isso na sua resposta para ajudar alguém? e deve haver um sudoantes ifup-> sudo ifdown eth0 && sudo ifup eth0caso contrário eu obter algum permission deniederro
Wolfgang
1

Tente procurar / run / network / ifstate e modifique-o adicionando eth (n) = eth (0) se você não encontrar o eth desejado lá.

Ex:

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

Depois disso, use o comando sudo ifdown eth (n) e, em seguida, sudo ifup eth (n).

alex
fonte
1

Para qualquer pessoa que acabou aqui, tive que parar todas as interfaces e pontes e, em seguida, descarregar os módulos antes que o erro RTNETLINK desaparecesse.

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

ou apenas reinicie.

Kurt
fonte
0

Acabei de encontrar este problema e nenhuma das soluções acima funcionou para mim. Não pude mudar /run/network/ifstateporque foi redefinido imediatamente para o estado anterior. Também sudo ifdown eth0 && sudo ifup eth0não funcionou.

Eu então descobri o seguinte comando:

sudo ip addr flush dev eth0

que resolveu o problema.

digijay
fonte