Как мне продлить аренду DHCP?


56

Если не считать перезагрузки, как я могу освободить и возобновить аренду DHCP? Было бы полезно узнать GUI и метод терминала.

Я особенно хотел бы знать, есть ли способ сделать это, не требуя прав администратора.

Ответы:


18

В раскрывающемся списке сетей на панели задач вы можете нажать сеть, к которой вы уже подключены, и это заставит администратора сети запросить новую аренду с DHCP-сервера.

альтернативный текст

(Это также работает для проводных сетей, но я не думаю, что это работает для соединений PPP (широкополосная мобильная связь))


47

Чтобы продлить аренду вашего dhcp в терминале:

sudo dhclient -r; sudo dhclient

10
Я думаю, что sudo service networking restartэто лучший способ пойти. То, что вы предлагаете, не работает для меня на коробке 11.10 с dhclient3. Вместо этого я запустил два DHCP-клиента: один dhclient3и один dhclient. См. Ubuntuforums.org/showthread.php?t=1868368
Адам Монсен

@AdamMonsen Действительно ли перезапуск сетевого сервиса работает с NetworkManager?
Ракслице

1
@ AdamMonsen, перезапуск сети, похоже, не продлевает аренду dhcp для меня
dogmatic69

sudo service network-manager restartв Ubuntu 13.10 64-разрядный рабочий стол, по-видимому, корректно перезапускает сетевые компоненты и обновляет мою аренду DCHP. (От askubuntu.com/a/230751/2273 )
Адам Монсен,

4
Полезно знать для отладки: в Ubuntu 14.04 sudo service network-manager restartне полностью возобновлена ​​аренда IP от DHCP. Он просто отправляет Requestпакет DHCP вместо Discover. Если вы просто хотите продлить аренду, этого достаточно, но если вы отлаживаете DHCP, вы хотите использовать оригинальное решение.
Герлос

31

В моем случае я должен был указать, какую карту обновлять:

Сначала освободите текущий IP-адрес:

sudo dhclient -r eth0

затем обновите IP-адрес

sudo dhclient eth0

3
Это правильный ответ, если у вас более одного интерфейса.
Tek

Лучше: присоединяйся к командам с помощью AND - sudo dhclient -r enp7s0 && sudo dhclient enp7s0(
замени

Пожалуйста, отредактируйте этот ответ, чтобы объединить их, я только что получил удаленный ящик, пробуя их отдельно.
Грэм Рассел

8

Maverick поставляется с nmcliинтерфейсом командной строки для сетевого менеджера.

Я не вижу простой способ сказать ему, чтобы продлить аренду, но работает:

nmcli con

Получает список подключений и работает:

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

Принимает соединение вниз и обратно. Может быть возможно сделать что-то подобное с устройством вместо этого.

Кажется, что список подключений включает в себя все подключения, поэтому, вероятно, он будет работать и с PPTP и VPN-подключениями.


1
Мой DHCP-сервер все еще показывает аренду там ... (я пытаюсь заставить выпуск сделать статическое назначение вступающим в силу)
Герт ван ден Берг

8

Это работает на Ubuntu 12.04 LTS:

sudo service network-manager restart

Когда я это делаю, Network Manager запрашивает новую аренду DHCP.

Я предпочитаю, чтобы это происходило вручную (пере), dhclientпотому что у меня были проблемы с устаревшими процессами dhclient (те, которые не управляются Network Manager) спонтанно и неправильно перенастраивали мои сетевые настройки в случайные моменты, когда это наименее удобно.


1
По-прежнему актуален для Ubuntu 16.04. dhclient -rпросто молча ничего не делает с успешным кодом выхода в противном случае. :-(
Стадог

Это работало нормально 18.04!
Роэль Ван де Паар

3

Если вы используете systemdUbuntu на основе версии без графического интерфейса пользователя (то есть версии сервера), то это способ продления аренды DHCP:

sudo systemctl restart systemd-networkd

Примечание. Если вы подключены через интерфейс, аренду DHCP которого вы обновляете, вы можете отключиться, если только вы не подключены через статически настроенный интерфейс или консоль.


Я проверял это с dhcpdumpпрослушиванием на другом терминале. Не похоже на работу, только dhclientспособ.
Пабло А

1

После обновления до Maverick Meerkat Beta 1 что-то сломалось в моей стандартной конфигурации vanilla eth0, которую я еще не отлаживал. Быстрый и грязный обходной путь был

sudo dhclient

который замечает, что уже был (возможно, мертвый) клиент и получает новую аренду:

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.

Это не исправить, просто взломать. Я буду следить, когда пойму, что пошло плохо.


1

nmcliЯ полагаю, что без этой конкретной возможности через CLI лучше всего выпустить и уничтожить экземпляр dhclient, управляемый NetworkManager, а не запускать новый. Затем NM автоматически восстановит его, чтобы избежать перезапуска всей инфраструктуры NM.

sudo dhclient -v -r -pf /run/sendsigs.omit.d/network-manager.dhclient-eth0.pid
  • -v - сделать многословным
  • -r - отпустить и закрыть
  • -pf - файл pid экземпляра NM
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.