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

56

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

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

ændrük
источник

Ответы:

18

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

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

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

LassePoulsen
источник
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-подключениями.

Matt
источник
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.

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

MSW
источник
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
Никлас Холм
источник