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
ifup
eifdown
, 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 eth1
MAS minha Eth1 está atribuída corretamente agora E está UP / UP.RTNETLINK answers: No such process Failed to bring up eth1
RTNETLINK 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?