Tenho um sistema Debian funcionando como um roteador sem fio com eth0 e wlan0. Agora eu adicionei uma rede adicional manualmente em eth1 com ifconfig:
alix:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0 alix:~# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 alix:~# ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data. 64 bytes from 192.168.0.254: icmp_req=1 ttl=64 time=0.537 ms 64 bytes from 192.168.0.254: icmp_req=2 ttl=64 time=0.199 ms 64 bytes from 192.168.0.254: icmp_req=3 ttl=64 time=0.188 ms ^C --- 192.168.0.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 0.188/0.308/0.537/0.161 ms
Tudo funciona bem como você pode ver.
Agora eu gostaria de tornar a configuração permanente. Portanto, adicionei a seguinte seção a /etc/network/interfaces:
alix:~# sed -n "/iface eth1/,/^$/p" /etc/network/interfaces iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0
Mas quando tento iniciar a rede, obtenho o seguinte erro:
alix:~# ifconfig eth1 down alix:~# ifup -v eth1 Configuring interface eth1=eth1 (inet) run-parts --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/hostapd ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists Failed to bring up eth1.
Quando executo o comando ip manualmente, recebo o mesmo erro:
alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists
O que há de errado com o comando? E como posso dizer ao Debian para fazer a coisa certa?
Resposta
Percebi que antes tinha que limpar o dispositivo trazendo-o à tona:
# ip addr flush dev eth1
Limpar informações de configuração de interface definidas manualmente como esta mencionado no Guia do servidor Ubuntu .
Comentários
Resposta
Usando ip addr flush funcionará, mas também limpará todo e qualquer endereço definido nessa interface – possivelmente incluindo aquele que você está usando, se você estiver conectado a uma máquina remota. Isso pode bloqueá-lo fora do seu dispositivo.
RNETLINK answers: File exists acontece quando você está tentando add uma regra que está em conflito com uma regra existente. Eu acho que o OP estava encontrando isso porque já havia definido o endereço com ifconfig. Este erro geralmente pode ser resolvido convertendo o comando add em um change ou replace comando.
É muito mais seguro usar ip addr change ou ip addr replace em vez disso.
Comentários
- Essa não é uma opção para alguém que usa apenas
ifupeifdown, porque o comando está fisicamente conectado a esses scripts. - @alerone using " sudo ip addr change " irá envie-me esta saída. " Informações insuficientes: " dev " o argumento é obrigatório. " Eu / precisamos de mais informações para usar a sua ideia. Seria bom.
Resposta
Eu tive um problema semelhante que, no momento em que joguei a cena de 10.000 dinheiros, era exatamente isso, e eu estava tentando um dd as coisas que faltam para / e / n / id / etho
Mas estudando a página de manual para interfaces, percebi que TODOS os conjuntos de exemplos tinham apenas 2 linhas de dados reais, o endereço ipv4 / 24 e uma linha de gateway especificando o endereço do meu roteador. Então, reduzi meu arquivo eth0 a isso, reiniciei e funcionou perfeitamente.
RTNETLINK answers: No such process Failed to bring up eth1MAS minha Eth1 está atribuída corretamente agora E está UP / UP.RTNETLINK answers: No such process Failed to bring up eth1RTNETLINK answers file? Além disso, depois de descarregar, minha placa de rede não está pegando um novo ip automaticamente, como pedir um novo ip ao dhcp?