Как мне продлить аренду 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.