- Имя хоста идентифицирует ваш компьютер в сети и может управляться с помощью таких команд, как hostname и hostnamectl.
- Для внесения необратимых изменений необходимо отредактировать файлы /etc/hostname и /etc/hosts или использовать такие инструменты, как hostnamectl и nmtui.
- Дистрибутивы, такие как Red Hat, Fedora, openSUSE или среды cloud-init, имеют свои собственные файлы и нюансы.
- Важно согласовать имя хоста системы, DHCP и Samba, чтобы избежать конфликтов и проблем с разрешением имен.

В любой системе GNU/Linux Имя хоста — это ключевая информация. для идентификации устройства в сети, будь то простой домашний ПК или производственный сервер. Хотя значение по умолчанию часто оставляют без изменений, например, локальныйРано или поздно наступает момент, когда вы хотите дать ему более описательное имя… или просто более короткое, чтобы командная строка терминала не превращалась в бесконечный кирпич (если вы также работаете с Windows, посмотрите, как это сделать). Изменить имя компьютера в Windows).
То, что на первый взгляд может показаться незначительным изменением, на самом деле имеет гораздо большее значение: Не все дистрибутивы хранят имя хоста в одном и том же месте.Некоторые службы используют собственную конфигурацию, и если компьютер получает свой IP-адрес через DHCP или предоставляет доступ к ресурсам через Samba, следует учитывать некоторые дополнительные детали. Мы рассмотрим все способы изменения имени компьютера в Linux, от самого быстрого и временного метода до постоянных и специфичных для дистрибутива вариантов.
Что именно представляет собой имя хоста и почему оно важно?
Имя хоста, если коротко, это... имя, под которым устройство представляется в сетиЭто идентификатор, который вы видите при проверке связи с другой машиной, тот, который используется внутри многих служб Unix, и тот, который отображается в командной строке терминала рядом с вашим именем пользователя.
При установке большинства дистрибутивов, если ничего не указано, система обычно выполняет настройку. общее имя, например, localhost или localhost.localdomainЭто работает, но как только в одной сети появляется несколько компьютеров с одинаковым именем, начинаются конфликты и путаница: дублирующиеся записи, неясные сообщения в журналах и общий хаос при попытке определить, какой компьютер к чему относится.
С точки зрения DNS, имя хоста может отображаться отдельно (например, сервер1или как Полное доменное имя (FQDN)Как server1.mydomain.localДля команды это очень распространенное явление. hostname Возвращать только короткую часть (без домена), но ту, которая находится в файле. /etc/hosts Существует запись, связывающая это имя с полным доменным именем (FQDN).
Кроме того, некоторые сетевые службы, такие как DHCP-клиент или Samba, могут... использовать конкретные имена хостов Он отличается от того, что есть в системе, поэтому важно знать, где настроен каждый из них, чтобы избежать несоответствий.
Как узнать текущее имя хоста в Linux
Прежде чем что-либо менять, было бы неплохо... проверьте, какое имя хоста система фактически видитСуществует несколько очень простых способов сделать это из терминала.
Самый классический вариант — это команда. hostname Проще говоря, это отобразит текущее имя хоста:
hostname
В современных системах с systemd можно использовать hostnamectlкоторая предоставляет более подробную информацию, включая статическое имя хоста, транспортное имя хоста и другие данные устройства:
hostnamectl
Если вы хотите узнать, откуда берется это имя на уровне файла, вы можете обратиться к псевдофайлу ядра. /proc/sys/kernel/hostname с простым cat:
cat /proc/sys/kernel/hostname
Ещё одно распространённое место — архив. /etc/hostnameЭто присутствует во многих современных дистрибутивах (Debian, Ubuntu и их производные, среди прочих). Именно здесь обычно хранится постоянное имя, которое система загружает при каждой загрузке.
cat /etc/hostname
Обратите внимание, что Не все дистрибутивы используют абсолютно одинаковые файлы.Например, в некоторых системах на базе Red Hat основным значением может быть следующее: /etc/sysconfig/network вместо /etc/hostname, как veremos más adelante.
Временно измените имя хоста с помощью команды hostname.
Если вам нужно лишь быстро изменить имя компьютера без перезагрузки, например, для разовой проверки, вы можете использовать... команда hostname с новым названиемЭти изменения происходят мгновенно, но не сохраняются после перезагрузки.
Синтаксис очень прост: достаточно выполнить следующую команду от имени привилегированного пользователя (обычно root или с помощью sudo):
hostname nuevo_nombre
Например, если вы хотите переименовать команду. hostinger В ходе текущей сессии вам следует ввести:
hostname hostinger
Чтобы убедиться, что изменения вступили в силу, вы можете запустить программу еще раз. hostname без аргументов:
hostname
Вы увидите, что система теперь возвращает новое имя. Однако, После перезагрузки компьютера имя хоста вернется к исходному. Это определяется в конфигурационных файлах. Этот метод идеально подходит для выполнения незначительных задач или быстрых проверок, но не для внесения постоянных изменений.
Изменить имя компьютера навсегда с помощью hostnamectl
В большинстве современных дистрибутивов загрузка системы и служб управляется SystemdЕсли это ваш случай, то в вашем распоряжении находится соответствующее подразделение. hostnamectlЭто позволяет постоянно и очень аккуратно изменять имя хоста.
Первым делом нужно убедиться, что в вашей системе установлен и запущен systemd. В современных дистрибутивах, таких как Ubuntu, Debian, Fedora, CentOS или RHEL, он предустановлен. В более старых средах может потребоваться его установка с помощью команды:
apt-get install systemd
Чтобы просмотреть текущий статус имени хоста, выполните следующую команду:
hostnamectl
В результате вы увидите информационный блок со строками следующего вида:
Static hostname: mi-servidor
Icon name: computer-vm
Chassis: vm
Machine ID: 45598cbdb6ee462e8696166b520fe788
Boot ID: 99526e56aeea45c2a0f3b2ffaaffe9d9
Virtualization: kvm
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.4.0
Architecture: x86-64
Ценность, которая нас интересует, это Статическое имя хостаЭто основное имя, заданное для системы. Чтобы изменить его, просто используйте опцию. set-hostname Затем следует новое название. Например, если вы хотите переименовать команду в... LINUX-SYSADMIT-01:
hostnamectl set-hostname LINUX-SYSADMIT-01
Эта команда обычно не выводит никакого результата, если всё работает правильно. Чтобы проверить результат, запустите её ещё раз. hostnamectl и проверьте это Статическое имя хоста обновлено. к значению, которое вы только что установили.
Одним из главных преимуществ этого метода является то, что изменения носят устойчивый характерОна останется активной после перезагрузки системы, без необходимости прямого изменения конфигурационных файлов, хотя всегда рекомендуется проверить её после перезагрузки. /etc/hosts на случай, если есть старые ссылки.
Измените имя хоста с помощью nmtui (текстовый интерфейс NetworkManager).
В системах на базе Red Hat (RHEL, CentOS, Fedora и их производных) довольно часто устанавливается текстовый пользовательский интерфейс NetworkManager, известный как нмтуи. Этот инструмент позволяет Настройте имя сети и компьютера с помощью текстовых меню.Это очень удобно, если вам не хочется редактировать файлы вручную.
Если nmtui недоступен, вы можете установить соответствующий пакет обычным способом. NetworkManager-tuiВ среде RHEL/CentOS это делается следующим образом:
sudo yum install NetworkManager-tui
После установки убедитесь, что служба NetworkManager запущена. Проверить это можно следующим образом:
service NetworkManager status
Если служба не запущена, вы можете запустить её с помощью следующей команды:
service NetworkManager start
После запуска NetworkManager вы можете открыть текстовый интерфейс инструмента с помощью следующей команды:
sudo nmtui
На появившемся экране вы увидите несколько вариантов. Нас интересует следующий вариант имени хоста... «Установить имя хоста системы»Выберите этот пункт с помощью стрелок курсора, нажмите Enter, и вы сможете ввести новое название команды, которое хотите использовать.
После сохранения изменений и выхода из nmtui, Имя хоста системы должно было измениться.В зависимости от конфигурации и версии дистрибутива, для полной синхронизации может потребоваться перезапуск некоторых сетевых служб или даже самого компьютера, но в большинстве случаев изменения вступают в силу немедленно.
Отредактируйте конфигурационные файлы, чтобы изменить имя хоста.
Если вы предпочитаете традиционный подход или работаете с системами, где не хотите полагаться на дополнительные инструменты, вы всегда можете... Измените имя хоста, отредактировав непосредственно конфигурационные файлы.Здесь проложены такие маршруты, как... /etc/hostname, /etc/hosts, /etc/sysconfig/network или даже конкретные файлы, например /etc/HOSTNAME в определенных распределениях.
Во многих дистрибутивах типа Debian/Ubuntu имя машины хранится в /etc/hostnameДля редактирования вы можете использовать свой любимый текстовый редактор (vi, vim, nano и т. д.). Например, с помощью vi:
vi /etc/hostname
Внутри файла вы увидите текущее имя компьютера, обычно в одной строке. Вам просто нужно... Замените это значение новым именем. Чтобы сохранить выбранный файл, сохраните его и выйдите из редактора.
Но этого недостаточно: важно, чтобы файл /etc/hosts Убедитесь, что он синхронизирован с новым именем хоста. Также откройте этот файл:
vi /etc/hosts
Это должно включать как минимум одну строку, связывающую IP-адрес 127.0.0.1 с полным доменным именем (FQDN) и любыми желаемыми псевдонимами. Типичный пример может выглядеть так:
127.0.0.1 makina.dominio makina localhost localhost.localdomain
В этом случае полное имя хоста выглядит следующим образом: makina.dominioВ то время как машина, локальный y localhost.localdomain Это псевдонимы. Благодаря этой записи, при запуске... hostname --fqdn вы получите полное доменное имя (FQDN)makina.dominioи если вы используете hostname --aliasВы увидите список псевдонимов.
После обновления /etc/hostname y /etc/hostsВо многих системах изменения применяются при следующем запуске. Настоятельно рекомендуется перезапустить или хотя бы перезапустить сетевую службу. во избежание несоответствий.
Особый случай: Fedora, Red Hat и их производные.
В среде Red Hat (RHEL, CentOS, Fedora и другие производные) помимо уже упомянутых инструментов существует классический способ настройки имени хоста: файл /etc/sysconfig/networkВ этом файле определены несколько переменных, которые используются при запуске сетевой службы.
Если вы редактируете /etc/sysconfig/networkВы найдете записи, похожие на эти:
NETWORKING=yes
HOSTNAME=mi-equipo
NISDOMAIN=midominio
Ключевой переменной является HOSTNAMEВ этом месте следует ввести новое имя вашего компьютера, обычно без доменной части. Также убедитесь, что СЕТЬ=даВ противном случае, сетевой стек может не активироваться должным образом.
Если вы работаете с NIS, то переменная НИЗДОМИН Это также будет актуально для интеграции с этим сервисом, хотя напрямую не влияет на имя хоста. Другие параметры, которые вы можете найти в файле, относятся к другим аспектам сети и не требуют изменения только для изменения имени компьютера.
В таких дистрибутивах, как openSUSE/SUSE Ситуация немного меняется: там обычно хранится полное системное имя. /etc/HOSTNAME (в верхнем регистре). Этот файл просто содержит полное доменное имя машины, и, опять же, вам нужно всего лишь отредактировать его и заменить значение новым именем.
В любом из этих случаев важно помнить, что В файле /etc/hosts должны быть отражены эти изменения. для корректной работы локального разрешения и таких команд, как hostname --fqdn вернуть то, что ожидалось.
В средах с использованием cloud-init: сохранение имени хоста.
Во многих облачных серверах, особенно на VPS или в экземплярах, созданных на основе стандартных образов, вступает в действие дополнительный уровень: облако-INITЭтот инструмент может перезаписывать имя хоста при каждой загрузке, если не будет дано иное указание, поэтому важно помнить об этом при внесении изменений вручную.
Если вы подозреваете, что ваша система использует cloud-init (очень распространенная практика у хостинг-провайдеров), вам следует проверить конфигурационный файл. /etc/cloud/cloud.cfgВы можете открыть его с помощью:
sudo vim /etc/cloud/cloud.cfg
В файле найдите строку, похожую на следующую:
preserve_hostname: false
Чтобы предотвратить повторное присвоение cloud-init собственного имени хоста при каждом запуске, изменить это значение на true:
preserve_hostname: true
После сохранения изменений и перезагрузки системы имя хоста, которое вы настроили, будет сохранено. hostnamectl Редактирование файлов больше не должно приводить к их перезаписи программой cloud-init. Если файл отсутствует на вашем компьютере, /etc/cloud/cloud.cfgВам просто не нужно беспокоиться об этом шаге.
Изменение имени хоста на VPS с помощью панели управления (например, Hostinger)
У некоторых VPS-провайдеров, таких как Hostinger, Постоянное имя хоста управляется через панель управления. И дело не только в самой операционной системе. Это означает, что даже если вы измените имя через терминал, фактическое значение, используемое сервером, может зависеть от того, что отображается в панели управления.
В такой среде процесс будет примерно следующим: вы заходите в раздел VPS, выбираете конкретный сервер, который хотите переименовать, и переходите в соответствующий раздел. настройки или конфигурацияОбычно там есть специальное поле для "Изменить имя хоста" или аналогичное, куда вы вводите новое имя и подтверждаете действие.
После внесения изменений в панель, это нормально, что Система обновляет статическое имя хоста. И вы можете проверить это как через веб-интерфейс, так и непосредственно на самом устройстве с помощью таких команд, как... hostname o hostnamectlЭто важная деталь, поскольку даже если вы принудительно установите значение на системном уровне, некоторые провайдеры сбрасывают значение панели во время таких событий, как перезапуск или перенастройка.
Сообщите DHCP-серверу правильное имя хоста
Когда ваш компьютер получает IP-адрес через DHCP, вам может потребоваться DHCP-сервер регистрирует имя вашего компьютера в DNS. автоматически. Теоретически, DHCP-клиент Linux должен использовать имя хоста системы, но на практике иногда он делает это не так, как ожидается.
В экосистеме Fedora/Red Hat конфигурация сетевого устройства, отправляющего DHCP-запрос, обычно находится в... /etc/sysconfig/network-scripts/ifcfg-<dev>, будучи <dev> имя интерфейса (например, eth0, p2p1и т. д.). В этих файлах можно определять такие переменные, как:
DHCP_HOSTNAME=mi-equipo
DHCP_CLIENT_ID=mi-equipo
Теоретически, эти параметры должны указывать DHCP-клиенту, какое имя хоста отправлять на сервер. На самом деле, в некоторых случаях их даже можно настроить с помощью графических средств управления сетью. Однако, Они не всегда работают так, как можно было бы ожидать. и DHCP-сервер может по-прежнему некорректно регистрировать имя.
Один из подходов, который часто дает лучшие результаты, — это редактирование файла конфигурации DHCP-клиента, обычно /etc/dhcp/dhclient.confи добавьте отдельную строку с именем, которое вы хотите отправить:
send host-name "makina";
Таким образом, при следующем обновлении DHCP-аренды устройством, сообщит серверу, что его имя хоста — «makina».Это обычно позволяет DNS-серверу записать правильную запись. Эта настройка может быть особенно полезна в следующих случаях: корпоративные сети где регистрация имен контролируется в мельчайших деталях.
Название команды для сетей Samba и Windows
Если ваша машина под управлением Linux ведет себя следующим образом Сервер общих ресурсов в сети Windows с использованием Samba (посмотрите, как предоставлять общий доступ к дискам и папкам), есть еще одно название, которое следует иметь в виду: то, которое компьютеры под управлением Windows видят в «Сетевом окружении» или в Проводнике при доступе к общим ресурсам.
В этом контексте соответствующее имя настраивается в файле. /etc/samba/smb.conf. внутренняя секция Существует несколько ключевых параметров, в том числе:
netbios name = MI-SERVIDOR
workgroup = MI_GRUPO
server string = Servidor de archivos Linux
Выбор netbios name Определяет имя, под которым сервер объявляет о себе в сети Windows. workgroup указывает на рабочую группу или область применения NT, в которую он интегрирован, и server string Это более понятное для человека описание сервера. Если вы настраиваете полноценный сервер Samba, эту тему можно было бы подробно обсудить, но для целей именования хостов... Название NetBIOS должно быть осмысленным и соответствовать назначению оборудования..
Хотя это имя не совсем совпадает с именем хоста Unix, для обеспечения единообразия часто настраивается что-то очень похожее. Изменение этого параметра не влияет на имя, возвращаемое командой. hostnameНо это влияет на то, как пользователи Windows видят вас в сети.
Среди множества возможных конфигураций в конечном итоге наиболее практичным является четкое определение имени, которое вы хотите использовать для своей машины, и обеспечение его согласованности во всех ключевых моментах: имя хоста системы, файл /etc/hosts, конфигурация DHCP и, если применимо, параметры Samba.Это избавит вас от головной боли в будущем, и ваш терминал будет отображать чистую и короткую командную строку без бесконечных строк. [электронная почта защищена] которые занимают половину экрана каждый раз, когда вы вводите команду.
Страстный писатель о мире байтов и технологий в целом. Мне нравится делиться своими знаниями в письменной форме, и именно этим я и займусь в этом блоге: покажу вам все самое интересное о гаджетах, программном обеспечении, оборудовании, технологических тенденциях и многом другом. Моя цель — помочь вам ориентироваться в цифровом мире простым и интересным способом.