Назад | Перейти на главную страницу

Имя хоста Debian отказывается закрепляться

Я использую VirtualBox для тестирования и имею последнюю стабильную версию Debian.

Когда я пытаюсь установить имя хоста машины, используя оба:

hostname ayil

и редактирование /etc/hostname и бег /etc/init.d/hostname.sh start чтобы убедиться, что он активирован.

Когда бы я ни бегал hostname -f он возвращает:

Неизвестный-08-00-27-47-ef-30.config

Скорее, чем ayil.

Я не уверен, что еще делать, я был бы очень признателен за полезный указатель в правильном направлении.

Грубо говоря, hostname показывает, как, по мнению вашего компьютера, он называется, тогда как hostname -f показывает, как мир думает, что называется ваш компьютер. Изменение /etc/hostname влияет на то, что hostname отображает. Чтобы изменить то, что hostname -f дисплей, вам следует изучить настройки вашей сети, в частности настройки DNS.

Вот соответствующая выдержка из hostname(1) страница руководства:

Вы не можете изменить полное доменное имя (возвращаемое с помощью hostname --fqdn) или имя домена DNS (возвращаемое dnsdomainname) с помощью этой команды. Полное доменное имя системы - это имя, которое преобразователь (3) возвращает для имени хоста.

Технически: полное доменное имя - это имя, возвращаемое gethostbyname (2) для имени хоста, возвращаемого gethostname (2). Доменное имя DNS - это часть после первой точки.

Следовательно, это зависит от конфигурации (обычно в /etc/host.conf), как вы можете ее изменить. Обычно (если файл hosts анализируется до DNS или NIS) вы можете изменить его в / etc / hosts.

В зависимости от того, что вы хотите использовать $(hostname -f) для, вы должны либо отредактировать /etc/hosts или настройте DNS-сервер, работающий на вашем хост-компьютере или в сети, чтобы знать о ayil. Редактирование /etc/hosts это самый простой путь к hostname -f шоу ayil, но если есть цель запустить hostname -f в отличие от hostname, вероятно, вы хотите, чтобы информация согласовывалась с некоторой информацией, хранящейся за пределами этого компьютера.

Ваши текущие изменения не вступят в силу, пока вы не перезагрузите систему, так как само ядро ​​имеет в виду имя хоста и имя домена. Чтобы все было правильно, я бы посоветовал выполнить эти простые шаги (некоторые из них вы уже сделали) на хосте. example.domain.com:

  • редактировать /etc/hostname содержать ваше имя хоста (без имени домена) example
  • редактировать /etc/hosts чтобы соответствовать вашему новому имени хоста. В противном случае вы получите ошибки поиска хоста во время sudo или других системных операций. Обычно ваше имя хоста сопоставляется с обратной связью. Не забудьте сначала указать полное доменное имя, а затем просто имя хоста. Часть этого файла может выглядеть так:
127.0.0.1 example.domain.com example localhost.localdomain localhost

Этот шаг можно пропустить, если поиск DNS будет указывать на этот сервер при запросе example.domain.com запись.

  • Обновите записи имени хоста и имени домена ядра:
sudo sysctl -e kernel.hostname=example
sudo sysctl -e kernel.domainname=domain.com

В следующий раз, когда вы войдете в свою командную строку, вы увидите новый example.domain.com имя хоста.

Вы проверили, что DHCP не устанавливает имя вашего хоста? Do 'ps aux | grep dhclient ', чтобы узнать, работает ли DHCP-клиент. Если это так, вы можете дважды проверить, назначает ли DHCP-сервер имя хоста, посмотрев на аренду DHCP в / var / lib / dhcp /. Найдите там файл аренды вашего интерфейса (возможно, dhclient.eth0.leases, если вы используете eth0). cat файл, и вы можете обнаружить, что установлены параметры dhcp host-name и domain-name.

Например, мое имя хоста в приглашении - «dhcpuser-82», а полное доменное имя - «dhcpuser82.dh.example.com». Мой файл /var/lib/dhcp/dhclient.eth0.leases выглядит так:

... бла-бла
опция host-name "dhcpuser-82";
вариант доменного имени "dh.example.com";
... еще бла-бла

Если так, то в этом причина вашего разочарования. Либо прекратите использование dhcp и перейдите в статический режим (что, если вы это сделаете, не забудьте выполнить kill для запущенного dhclient, так как перезапуск сети не убьет его автоматически, и вы обнаружите, что все вернулось к следующему day) или проверьте в Google способы обхода параметров DHCP для имени хоста и имени домена. Кстати, не пытайтесь редактировать файл аренды, чтобы исправить проблему. Он просто будет перезаписан в следующий раз, когда dhcp обновит аренду, или, что еще хуже, он не сможет продлить вашу аренду, и ваш хост потеряет свой IP.

Если на вашем сервере работает DHCP-клиент, он может сбрасывать ваше имя хоста каждый раз при продлении срока аренды. Проверьте /etc/default/dhcpcd и ищите эти строки:

# Uncomment this to allow dhcpcd to set hostname of the host to the
# hostname option supplied by DHCP server.
SET_HOSTNAME='yes'

Вы, наверное, захотите прокомментировать SET_HOSTNAME line вместо этого.

Еще вы можете попробовать настроить обратный DNS для своего IP-адреса, если ваш хост позволяет это.