Я использую такие имена, как «a.alpha» для имени хоста моего Linux-сервера, но мне кажется, что эти имена нельзя использовать полностью. Ответ hostname
команда оболочки верна (a.alpha). Но имя, напечатанное после моей учетной записи пользователя, - «user @ a» вместо «user@a.alpha». Когда я использую авахи, я могу достичь ( hostname
) «a.alpha», но не «b.alpha». Это нормально?
Чоппер прав. Из-за того, как работает DNS, «альфа» компонент «a.alpha» считается дискретной «меткой» в DNS. Использование имени хоста с точкой приведет к непоследовательным результатам в любой системе, использующей DNS.
Avahi взаимодействует с DNS-именами, в частности с <host-name>
Директива должна содержать полное доменное имя DNS службы, поэтому она также подвержена несогласованности DNS с именами, разделенными точками.
Не используйте имена с точками.
Вы просите проблемы с этой схемой именования из-за DNS, рассмотрите вместо этого альфа-версию.
Как уже упоминали другие люди, вы определенно хотите избежать точек в именах хостов из-за DNS, и я также обнаружил, что это может вызвать проблемы, если вы используете сертификаты с подстановочными знаками для выполнения SSL, поскольку сертификаты с подстановочными знаками будут подстановочными только для одного уровня поддомен. Поэтому, если ваш сертификат с подстановочными знаками предназначен для * .mycompany.com, но у вас есть имя хоста a.alpha, сертификат с подстановочными знаками может не работать, если он рассматривает «alpha» как поддомен.
Полное имя хоста обычно представляет собой полное доменное имя с доменом (полное доменное имя), а в Linux должно в конечном итоге быть результатом host --fqdn
, при этом часть перед первой точкой рассматривается как псевдоним хоста. Однако в разных системах (Linux, SunOS и т. Д.) Концепция «hostnick» реализована по-разному. Такие как:
Кроме того, идея хостника немного вариативна:
И, чтобы еще больше усложнить ситуацию, host
команда от bind9-host нарушает стандарты DNS, имея -N <int>
возможность контролировать, используются ли поисковые домены. Это по-разному нарушает поиск DNS в зависимости от сценария. Предполагается, что DNS выполняет любой поиск имени с конечная точка как буквально то, что искать, а другие имена, чтобы искать их с добавленными доменами из /etc/resolv.conf
до тех пор, пока не будет найдено совпадение или все они не завершатся ошибкой (эти домены неявно имеют точку в конце). [Это по памяти, прокомментируйте, если Общее процесс был изменен в RFC, который я пропустил]
Таким образом, если вы используете точки в своем hostnick, host
команда, вероятно, испортит что-то, сломав скрипты, которые используют ее для поиска. Я лично считаю непостижимым, что host
сломан, и кажется даже сегодня нарушать поиск в системе в моей домашней сети, так как у меня дома есть и IPv4, и -v6, а имена вроде .v4. как дополнительные короткие формы для конкретных версий, которые host
не может найти, хотя ping
находит их в порядке.
В любом случае попытки расставить точки в хостах были крайне редкими, так что даже без host
мозговое повреждение, я бы порекомендовал придерживаться хостов без точки даже с точки зрения простой семантики.
Правильный ответ определенно «не делай этого», как указано выше.
Для некоторых, возможно, полезных и определенно косвенных чтений, пожалуйста, продолжайте:
Вы говорите о разрешении DNS или о командной строке? Если вы хотите исправить приглашение командной строки, просто поиграйте с $ PS1 (или аналогичным эквивалентом, отличным от bash / sh, если применимо).
Если вы действительно хотите, чтобы a.alpha было именем хоста, которое преобразуется в IP-адрес в межсетевых сетях, вы можете это сделать, но это может включать субдомен для каждого суффикса имени хоста (например, альфа, бета и т. Д.).
Возможно даже, что вы можете настроить свой DNS-сервер для работы без создания поддоменов. Вы можете обслуживать IP-адреса серверов имен поддомена в файлах зон родительского домена, так что это может «просто работать». Это связано с тем, что, когда кто-то запрашивает у вашего DNS-сервера IP-адрес a.alpha.examaple.com, они спрашивают DNS-сервер о example.com, и если у этого DNS-сервера уже есть адрес, он ответит , вместо того, чтобы пытаться передать вас на полномочный сервер поддомена. Это может быть связано с отсутствующей SOA ... так что, возможно, вы добавите запись A для каждого префикса хоста и SOA для каждого суффикса хоста. Да, это билет ...
Все в Интернете по-прежнему будут думать, что ваше имя хоста - «a», а ваш домен - alpha.example.com.
Чтобы были точки (.
) в приглашении вашего имени хоста (PS1
). Измените свой PS1
настройки, изменить: \h
в \H
. PS1
обычно создается в Вашем ~/.bashrc