Como forço o Linux a readquirir um novo endereço IP do servidor DHCP?

24

O ambiente é o Debian , embora a resposta se aplique a todas as distribuições.

p.campbell
fonte
Este é agora um wiki da comunidade. Sinta-se livre para contribuir com outros métodos que funcionem.
GeneQ

Respostas:

35

Você também pode usar este comando:

dhclient -r interface

Onde interfaceestá o dispositivo para o qual você deseja obter um novo endereço.

dhclient -r eth0

O -rsinalizador obriga dhclienta liberar primeiro todas as concessões que você possui, então você pode usar este comando para solicitar uma nova concessão:

dhclient eth0

De man dhclient:

   -r     Tell  dhclient  to  release the current lease it has from the 
          server.  This is not required by the DHCP protocol, but some 
          ISPs require their clients to notify the server if they wish 
          to release an assigned IP address.
slm
fonte
Também uma boa maneira de fazê-lo :)
Frenchie
1
Após este comando, meu Debian falhou ao obter um novo IP, mas após uma reinicialização, fui designado para um novo, portanto funcionou!
Damien
3
Para mim, isso apenas libera a concessão e não descobre a interface. Nenhum novo IP é obtido posteriormente.
Cgogolin
Que é uma chatice total se você é interface principal é ssh ...
Eric Nord
13

Qualquer um dos seguintes deve renovar.

/etc/init.d/networking restart

ou

ifdown eth0; ifup eth0

Eu não recomendaria a execução de uma conexão SSH, apesar de você provavelmente se safar da primeira se ela não voltar com um novo endereço IP.

Frenchie
fonte
1
As conexões SSH tolerarão alguns segundos de "desconexão", desde que você recupere a conexão em alguns segundos no mesmo endereço IP. Sob essas condições, nunca perdi uma ligação durante /etc/init.d/networking restart, mesmo quando ele estava tomando mais de 5 segundos para voltar para cima ...
Avery Payne
Isso não requer privilégios administrativos?
22416 Peter Mortensen
10

Gostaria de comentar p.campbell, mas tenho apenas 1 reputação e, portanto, não posso, primeiro reviso as interfaces instaladas:

ip addr

libere o IP da interface selecionada (por exemplo, eth0, eth1, enp1s0, sit0, wlan0, ...):

sudo dhclient -r *interface*

solicite um novo IP do servidor DHCP (alerta de erro):

sudo dhclient -1 *interface*

verifique o IP:

ip addr

Confirmado o Ubuntu 16.04 LTS

BFGoody
fonte
4

Se você estiver usando a dhcpcdferramenta, então:

dhcpcd -k interface
dhcpcd interface

O primeiro diz para parar o daemon e o segundo diz para iniciá-lo novamente.

p.campbell
fonte
2

Se o endereço MAC da interface não for alterado, o servidor DHCP poderá atribuir o mesmo endereço ao renovar. Portanto, uma simples liberação e renovação com dhclient pode não adquirir um novo endereço. Mude o endereço MAC e adquira um novo endereço IP com os seguintes comandos. Não se esqueça de anotar o original se precisar voltar a usá-lo posteriormente.

ifconfig <interface> down
ifconfig <interface> hw ether <MAC address>
ifconfig <interface> up
Trevor Karjanis
fonte
Isso foi muito útil, obrigado! Nenhum número dhclient -rou ifconfig downme deu um novo endereço IP na minha rede de trabalho, até que eu mudei o endereço MAC para algo aleatório usando esse comando.
Migwell 19/11
Mesmo aqui, esta deve ser a resposta oficial.
Jonathan Argentiero