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

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

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

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

sudo dhclient -r; sudo dhclient

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

Примечание: возможно, вы захотите соединить их в одну линию, так как в противном случае вы можете потерять удаленное соединение, к которому подключены после первого!

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

sudo dhclient -r eth0

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

sudo dhclient eth0

.. или делайте их вместе, чтобы избежать потери связи:

sudo dhclient -r eth0 && sudo dhclient eth0

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

alt text

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

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

sudo service network-manager restart

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

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

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

sudo systemctl restart systemd-networkd

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

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

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

nmcli con

Выдает вам список подключений и запускает:

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

Отключает соединение и создает резервную копию. Возможно, вместо этого можно сделать что-то подобное с устройством.

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

Не хватает этой конкретной возможности с помощью 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

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

sudo dhclient

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

There is already a pid file /var/run/dhclient.pid with pid 2436killed old client process, removed PID fileInternet Systems Consortium DHCP Client V3.1.3Listening on LPF/eth0/00:1a:92:24:9c:85Sending on   LPF/eth0/00:1a:92:24:9c:85Sending on   Socket/fallbackDHCPDISCOVER on vboxnet0 to 255.255.255.255 port 67 interval 3DHCPREQUEST of 192.168.2.2 on eth0 to 255.255.255.255 port 67DHCPACK of 192.168.2.2 from 192.168.2.1bound to 192.168.2.2 -- renewal in 118389830 seconds.

Это не исправление, просто взлом. Я прослежу за этим, когда выясню, что пошло не так.