Como posso liberar e renovar minha concessão de DHCP do Terminal?

18

No Terminal, como posso liberar e renovar minha concessão de DHCP?

Atualmente, estou fazendo o seguinte para a interface sem fio, mas estou pensando se há uma maneira melhor:

sudo ifconfig en1 down
sudo ifconfig en1 up

Para a interface com fio, substitua en1por en0.

Matthew Rankin
fonte
Você está esperando alguém dizer não - não há uma maneira melhor ou podemos resolver sua questão / editá-la para que seja provável que você obtenha uma resposta diferente da ue ipconfig/ ifconfig?
bmike

Respostas:

27

Isso também pode ser alcançado com os dois comandos a seguir:

sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP

Você pode alias os dois juntos no seu perfil do bash:

alias renew="sudo ipconfig set en0 BOOTP && sudo ipconfig set en0 DHCP"

Então você tem apenas um comando chamado renewque irá liberar e renovar seu DHCP.

robzolkos
fonte
2
A resposta de Rob certamente funcionará - mas ipconfig setsempre desconfigura a interface antes de configurar o DHCP novamente. Eu nunca precisei do primeiro comando - e ipconfigé muito mais alto nível (ele lida com rotas melhor) do que ifconfige prefiro para o caso que você indicar.
bmike
4
O comando cli "ipconfig set en0 DHCP" não é uma renovação dhcp no sentido puro, mas um procedimento completo de descoberta, oferta, solicitação e confirmação. O botão "renovar" no painel de controle gera apenas uma solicitação dhcp (precedida por uma liberação) e é respondida por um ACK. Há uma diferença entre os dois, pois a renovação é normalmente enviada por um cpe na metade do tempo de concessão para renovar a concessão antes que ela expire. Os dispositivos de acesso à Internet, como um sistema de terminação de modem a cabo, reagirão de maneira diferente nos dois procedimentos. Ainda estou procurando um comando puro dhcp-renew
@robzolkos O comando acima funciona perfeitamente para a conta de administrador, mas quando eu entrei como usuário padrão no MAC, ele solicita a senha. Se possível, como eu poderia pular essa parte da senha e um usuário padrão pode executar este comando.
JYOTISH Singh #
8

A maneira como o botão de renovação funciona nas Preferências do Sistema é criar uma chave na configuração do sistema. Pode-se criar a chave via:

echo "add State:/Network/Interface/en0/RefreshConfiguration temporary" | sudo scutil

Trocando en0pela interface desejada.

chymb
fonte