Como renovo minha concessão de DHCP?

56

Antes da reinicialização, como posso liberar e renovar minha concessão de DHCP? Seria útil conhecer uma GUI e um método terminal.

Gostaria especialmente de saber se existe um meio de fazer isso sem exigir privilégios de administrador.

ændrük
fonte

Respostas:

18

No seletor suspenso de rede da bandeja do sistema, você pode pressionar a rede à qual já está conectado; isso fará com que o gerente de rede solicite uma nova concessão de um servidor DHCP.

texto alternativo

(Isso também funciona para redes com fio, mas não acho que funcione para conexões PPP (banda larga móvel))

LassePoulsen
fonte
47

Para renovar sua concessão dhcp no terminal:

sudo dhclient -r; sudo dhclient
Sebastian Thürrschmidt
fonte
10
Eu acho que sudo service networking restarté o melhor caminho a percorrer. O que você sugere não funcionou para mim em uma caixa 11.10 com dhclient3. Em vez disso, acabei com dois clientes DHCP em execução: um dhclient3e um dhclient. Veja ubuntuforums.org/showthread.php?t=1868368
Adam Monsen
@AdamMonsen Reiniciar o serviço de rede realmente funciona com o NetworkManager?
rakslice
11
@AdamMonsen reiniciar rede parece não renovar a concessão DHCP para mim
dogmatic69
sudo service network-manager restartno Ubuntu 13.10 a área de trabalho de 64 bits parece reiniciar adequadamente as coisas da rede e renovar minha concessão de DCHP. (From askubuntu.com/a/230751/2273 )
Adam Monsen
4
Útil saber para depuração: no Ubuntu 14.04 sudo service network-manager restartnão renovou completamente a concessão de IP do DHCP. Apenas envia um Requestpacote DHCP em vez de a Discover. Se você apenas deseja renovar sua concessão, é suficiente, mas se estiver depurando o DHCP, deseja usar a solução original.
Gerlos
31

No meu caso, tive que especificar qual cartão renovar:

Primeiro, libere o endereço IP atual:

sudo dhclient -r eth0

então renove o endereço IP

sudo dhclient eth0
Daniel Mora
fonte
3
Esta é a resposta correta se você tiver mais de uma interface.
Tek
Melhor: junte os comandos com AND - sudo dhclient -r enp7s0 && sudo dhclient enp7s0(substitua pelo seu dispositivo de rede eth)
bshea 11/01
Edite esta resposta para juntá-las. Acabei de ser expulso de uma caixa remota tentando essas separadamente.
Graham Russell
8

O Maverick vem com nmcliuma interface de linha de comando para o gerenciador de rede.

Não vejo uma maneira simples de dizer para renovar uma concessão, mas executando:

nmcli con

Obtém uma lista de conexões e está em execução:

nmcli con down id 'Connection Name'
nmcli con up id 'Connection Name'

Desativa e faz o backup da conexão. Pode ser possível fazer algo semelhante com o dispositivo.

A lista de conexões parece incluir todas as conexões, portanto provavelmente também funcionará com conexões PPTP e VPN.

Matt
fonte
11
Meu servidor DHCP ainda mostra a locação lá ... (Eu estou tentando forçar uma liberação para fazer uma atribuição estática entrem em vigor)
Gert van den Berg
8

Isso funciona no Ubuntu 12.04 LTS:

sudo service network-manager restart

Quando faço isso, o Network Manager solicita uma nova concessão de DHCP.

Prefiro isso a (re) iniciar manualmente, dhclientporque tive problemas com processos antigos do dhclient (aqueles não gerenciados pelo Network Manager), reconfigurando espontânea e incorretamente minhas configurações de rede em pontos aleatórios, quando é menos conveniente.

Marius Gedminas
fonte
11
Ainda relevante no Ubuntu 16.04. dhclient -rapenas silenciosamente não faz nada com um código de saída bem-sucedido. :-(
studog 18/09/18
Isso funcionou bem em 18.04!
Roel Van de Paar
3

Se você estiver em uma systemdversão baseada no Ubuntu sem uma GUI (ou seja, versão do servidor), esta é a maneira de renovar a concessão do DHCP:

sudo systemctl restart systemd-networkd

Nota: Se você estiver conectado através da interface cuja concessão DHCP está renovando, poderá ser desconectado, a menos que esteja conectado através de uma interface configurada estaticamente ou do console.

Pierz
fonte
Eu estava testando isso dhcpdumpouvindo em outro terminal. Não parecia funcionar, apenas o dhclientcaminho.
Pablo A
1

Tendo acabado de atualizar para o Maverick Meerkat Beta 1, algo quebrou na minha configuração padrão, vanilla eth0, que ainda não depurei. A solução rápida e suja foi

sudo dhclient

que nota que já existe um cliente (possivelmente morto) e obtém uma nova concessão:

There is already a pid file /var/run/dhclient.pid with pid 2436
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.3
Listening on LPF/eth0/00:1a:92:24:9c:85
Sending on   LPF/eth0/00:1a:92:24:9c:85
Sending on   Socket/fallback
DHCPDISCOVER on vboxnet0 to 255.255.255.255 port 67 interval 3
DHCPREQUEST of 192.168.2.2 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.2.2 from 192.168.2.1
bound to 192.168.2.2 -- renewal in 118389830 seconds.

Isso não é uma correção, apenas um hack. Vou acompanhar quando descobrir o que deu errado.

msw
fonte
1

Sem essa capacidade específica nmcli, acredito que a melhor solução CLI é liberar e eliminar a instância dhclient gerenciada pelo NetworkManager, em vez de iniciar uma nova. O NM trará o backup novamente automaticamente, evitando a necessidade de reiniciar toda a infraestrutura do NM.

sudo dhclient -v -r -pf /run/sendsigs.omit.d/network-manager.dhclient-eth0.pid
  • -v - tornar detalhado
  • -r - solte e desligue
  • -pf - arquivo pid da instância do NM
Niklas Holm
fonte