Я использую 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-адреса, если ваш хост позволяет это.