Как заставить Linux повторно получить новый IP-адрес с сервера DHCP?

24

Средой является Debian , хотя ответ будет распространяться на все дистрибутивы.

p.campbell
источник
Теперь это вики сообщества. Не стесняйтесь вносить любые другие методы, которые работают.
GeneQ

Ответы:

35

Вы также можете использовать эту команду:

dhclient -r interface

Где interfaceнаходится устройство, для которого вы хотите получить новый адрес.

dhclient -r eth0

В -rфлаге сила dhclientв первый выпуск любой аренды у вас есть, вы можете использовать эту команду , чтобы запросить новый:

dhclient eth0

От 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.
слм
источник
Также хороший способ сделать это :)
Frenchie
1
После этой команды моему Debian не удалось получить новый IP, но после перезагрузки мне был назначен новый, так что он работает!
Дэмьен
3
Для меня это только освобождает аренду и не настраивает интерфейс. После этого новый IP не получен.
cgogolin
Что обидно, если ваш основной интерфейс - ssh ...
Эрик Норд,
13

Любое из следующего должно заставить это возобновить.

/etc/init.d/networking restart

или

ifdown eth0; ifup eth0

Я бы не рекомендовал работать по SSH-соединению, хотя вам, вероятно, не удастся использовать первое, если оно не вернется с новым IP-адресом.

Frenchie
источник
1
Соединения SSH будут терпеть несколько секунд «разъединения», если вы восстановите соединение через несколько секунд с того же IP-адреса. В этих условиях я никогда не терял соединение /etc/init.d/networking restart, даже когда на восстановление ушло более 5 секунд ...
Эйвери Пейн
Разве это не требует административных привилегий?
Питер Мортенсен
10

Я бы прокомментировал p.campbell, но у меня только 1 репутация, и поэтому я не могу, сначала я проверяю установленные интерфейсы:

ip addr

освободить IP с выбранного интерфейса (например, eth0, eth1, enp1s0, sit0, wlan0, ...):

sudo dhclient -r *interface*

запросить новый IP с сервера DHCP (предупреждение об ошибке):

sudo dhclient -1 *interface*

проверьте IP:

ip addr

Ubuntu 16.04 LTS подтвердил

BFGoody
источник
4

Если вы используете dhcpcd инструмент, то:

dhcpcd -k interface
dhcpcd interface

Первый говорит, чтобы остановить демона, а второй говорит, чтобы запустить его снова.

p.campbell
источник
2

Если MAC-адрес интерфейса не изменился, DHCP-сервер может назначить ему тот же адрес при обновлении. Поэтому простой выпуск и обновление с помощью dhclient может не получить новый адрес. Измените MAC-адрес и получите новый IP-адрес с помощью следующих команд. Не забудьте записать оригинал, если вам нужно вернуться к нему позже.

ifconfig <interface> down
ifconfig <interface> hw ether <MAC address>
ifconfig <interface> up
Тревор Карджанис
источник
Это было так полезно, спасибо! Ни один номер dhclient -rили не ifconfig downдал мне новый IP-адрес в моей рабочей сети, пока я не изменил MAC-адрес на случайный, используя эту команду.
Мигвелл
То же самое здесь, это должен быть официальный ответ.
Джонатан Арджентьеро