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.


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.

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.


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


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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.