Согласно нескольким комментариям в сети, большинство клиентов DHCP просто игнорируют имя хоста, предоставленное сервером DHCP. Использует ли Ubuntu предоставленное имя хоста? Если нет, то как можно убедить Ubuntu использовать предоставленное имя хоста?
Давайте не будем говорить о том, сколько времени я потратил на поиск этого ответа, но вот он:
переключитесь с isc dhcpclient на dhcpcd5, и он ПРОСТО РАБОТАЕТ! пытаясь заставить dhclient-exit-hooks.d работать, не нужно взламывать что-то для запуска /etc/init.d/hostname.sh, просто запустите dhcpcd, продлите аренду, и вот вы здесь.
Установка пустого имени хоста (которое содержится в /etc/hostname
) работает как минимум для Ubuntu 14.04 (просто обязательно продлите аренду DHCP или перезапустите, конечно).
Затем в качестве необязательного шага - если вы заботитесь о сообщениях, подобных unable to resolve host <hostname>
, - вам придется динамически изменять /etc/hosts
, чтобы указывать адрес обратной связи на полученное имя хоста.
Используя Ubuntu 14.04, вы можете поместить скрипт в /etc/dhcp/dhclient-enter-hooks.d
, содержащий следующее, чтобы выполнить этот необязательный шаг:
if [ -n "${new_host_name}" ]; then sed -i "/127.0.1.1/c\127.0.1.1 ${new_host_name}" /etc/hosts fi
Затем, конечно, сделать его исполняемым с помощью chmod +x my-custom-script
.
Похоже, вы можете сделать это с помощью параметра /etc/dhcp3/dhclient.conf:
запрос имени хоста;
См. Пример в конце dhclient.conf (5)