Hostname (имя компьютера, имя хоста) задается во время установки системы Linux. Hostname определяет название компьютера и используется преимущественно для идентификации компьютера в сети. Нельзя назначать два одинаковых Hostname для компьютеров в одной сети.
Просмотр текущего Hostname
Чтобы показать текущий Hostname можно использовать команду hostname без параметров:
hostname
Также Hostname можно отобразить командой hostnamectl:
hostnamectl
Смотрите также: Как узнать имя компьютера (hostname) в Linux.
Как изменить Hostname
Рассмотрим, как изменить Hostname двумя разными способами.
Способ 1. Используем команду hostnamectl
Во многих systemd-based дистрибутивах (например, в Ubuntu Linux) есть утилита hostnamectl.
Воспользуемся командой hostnamectl, чтобы установить новое значение Hostname равным pingvinus. Используется аргумент set-hostname:
sudo hostnamectl set-hostname pingvinus
Способ 2. Редактируем файлы /etc/hostname и /etc/hosts
Еще один способ изменения Hostname — это ручное редактирование файла /etc/hostname и файла /etc/hosts.
Сначала выполните команду (вместо pingvinus укажите свое значение):
sudo hostname pingvinus
Отредактируем файл /etc/hostname для редактирования в редакторе nano, выполняем команду:
sudo nano /etc/hostname
Измените текущее значение в файле на новое. Сохраните изменения и закройте файл. Это можно сделать, нажав Ctrl+C, затем Y и Enter.
Hostname прописывается также в файле /etc/hosts, поэтому нужно изменить его значение в этом файле. Откроем файл:
sudo nano /etc/hosts
Найдите строку вида «127.0.0.1 ваш_hostname» и впишите новое имя хоста. Сохраните изменения и закройте файл.
Проверка результата
Чтобы проверить, изменилось ли значение Hostname, откройте новое окно терминала и введите команду:
hostname
Как временно изменить Hostname
Чтобы изменить Hostname в текущей работающей системе Linux, но до первой перезагрузки, можно использовать просто команду hostname, указав ей новое значение имени хоста:
hostname новое_имя
Лайков: +1
Войдите, чтобы ставить лайкимне нравится
Смотрите также
- Запуск программ через дискретную видео-карту из меню в openSUSE GNOME
- Видео: Установка и настройка VirtualBox для новичков
- Как узнать версию Linux
- Установка ROSA Fresh R11
- Установка и использование PIP в Linux
- Включаем NumLock при старте
- Установка Xfce в Ubuntu и немного впечатлений
- «Пара» слов о Solus 4.2 под KDE
- Буфер обмена в Linux (копирование и вставка)
- Как узнать IP адрес, используя командную строку Linux
Your hostname is a vital piece of system information that you need to keep track of as a system administrator. Hostnames are the designations by which we separate systems into easily recognizable assets. This information is especially important to make a note of when working on a remotely managed system. I have experienced multiple instances of companies changing the hostnames or IPs of storage servers and then wondering why their data replication broke. There are many ways to change your hostname in Linux; however, in this article, I’ll focus on changing your name as viewed by the network (specifically in Red Hat Enterprise Linux and Fedora).
Background
A quick bit of background. Before the invention of DNS, your computer’s hostname was managed through the HOSTS file located at /etc/hosts
. Anytime that a new computer was connected to your local network, all other computers on the network needed to add the new machine into the /etc/hosts
file in order to communicate over the network. As this method did not scale with the transition into the world wide web era, DNS was a clear way forward. With DNS configured, your systems are smart enough to translate unique IPs into hostnames and back again, ensuring that there is little confusion in web communications.
Modern Linux systems have three different types of hostnames configured. To minimize confusion, I list them here and provide basic information on each as well as a personal best practice:
- Transient hostname: How the network views your system.
- Static hostname: Set by the kernel.
- Pretty hostname: The user-defined hostname.
It is recommended to pick a pretty hostname that is unique and not easily confused with other systems. Allow the transient and static names to be variations on the pretty, and you will be good to go in most circumstances.
Working with hostnames
Now, let’s look at how to view your current hostname. The most basic command used to see this information is hostname -f
. This command displays the system’s fully qualified domain name (FQDN). To relate back to the three types of hostnames, this is your transient hostname. A better way, at least in terms of the information provided, is to use the systemd
command hostnamectl
to view your transient hostname and other system information:
Before moving on from the hostname
command, I’ll show you how to use it to change your transient hostname. Using hostname <x>
(where x
is the new hostname), you can change your network name quickly, but be careful. I once changed the hostname of a customer’s server by accident while trying to view it. That was a small but painful error that I overlooked for several hours. You can see that process below:
It is also possible to use the hostnamectl
command to change your hostname. This command, in conjunction with the right flags, can be used to alter all three types of hostnames. As stated previously, for the purposes of this article, our focus is on the transient hostname. The command and its output look something like this:
The final method to look at is the sysctl
command. This command allows you to change the kernel parameter for your transient name without having to reboot the system. That method looks something like this:
GNOME tip
Using GNOME, you can go to Settings -> Details to view and change the static and pretty hostnames. See below:
Wrapping up
I hope that you found this information useful as a quick and easy way to manipulate your machine’s network-visible hostname. Remember to always be careful when changing system hostnames, especially in enterprise environments, and to document changes as they are made.
Want to try out Red Hat Enterprise Linux? Download it now for free.
Last updated on: 2022-06-20
Authored by: Osvaldo Ambrosio
By default, your server is started with the server’s given name as the hostname.
Some software such as cPanel® requires a valid fully qualified domain name (FQDN) for the hostname
to be used during their licensing verification system. This article describes how to change a server hostname
in Linux®.
Change a server’s hostname
-
Check existing hostname
-
Modify the value to match your FQDN hostname,
as shown in the following example:$ hostnamectl set-hostname NEW-HOST $ hostname NEW-HOST
-
Open the file at /etc/hosts. To update the information for internal
networking, change the host that is associated with the main IP address
for your server, as shown in the following example:$ vim /etc/hosts 127.0.0.1 localhost localhost.localdomain 123.45.67.89 hostname.domain.com hostname
-
Change the domain name (where required)
$ vim /etc/resolv.conf domain abc.com <--- This would be the domain. nameserver 173.203.4.8 nameserver 173.203.4.9
-
Change networking configuration /etc/sysconfig/network
$ vim /etc/sysconfig/network NETWORKING=yes FORWARD_IPV4=false HOSTNAME=hostname.domainname.com <---- change this bit (FQDN) DOMAINNAME=domainname.com <---- change this bit if the domain name has changed GATEWAY=172.0.0.1 GATEWAYDEV=eth0
-
Change networking configuration /etc/sysconfig/network
$ vim /etc/hostname hostname.domainname.com
-
Update the Mail Transfer Agent (MTA) configuration.
$ vim /etc/postfix/mydomains mydomains - included a list of aliases for your machine here, formatted: example.com OK After change, run 'postmap /etc/postfix/mydomains' localhost OK #myoldserver.domain.com OK <------ commented out myserver.domain.com OK <----- added in
Update the hostname in Postfix if it is hadcoded in and restart the service
$ vim /etc/postfix/main.cf $ postmap /etc/postfix/main.cf $ systemctl restart postfix
NOTE: This file can have quite a bit of information. You can grep for ‘hostname’ for faster results.
$ grep 'hostname' /etc/postfix/main.cnf $ cat /etc/postfix/main.cnf | grep hostname
-
Update MySQL, MariaDB or Percona — Check the user table for the old hostname.
$ mysql -e "SELECT DISTINCT host FROM mysql.user;"
If binary logging is enabled and the log files named using the original hostname then you must update /etc/my.cnf or binary logging will break and possibly have replication. You must specify the filename of the existing files, i.e. the old hostname
$ grep -E 'log-bin|relay-log' /etc/my.cnf /etc/mysql/my.cnf log-bin=/var/lib/mysqllogs/oldlogfilename relay-log=/var/lib/mysqllogs/oldrelaylogfilename
-
Restart syslog
$ service rsyslog restart or $ systemctl restart rsyslog
Related Articles
- Change a server hostname in the Ubuntu operating system
- Cloud Servers Articles
Use the Feedback tab to make any comments or ask questions. You can also start a conversation with us.
©2020 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License
See license specifics and DISCLAIMER
Имя устройства помогает идентифицировать его внутри сети. Называя устройство, можно вложить в его имя какую-то смысловую нагрузку, что позволит лучше запомнить его имя. Или же по имени опознать его функционал. Это относится как к компьютерам пользователей, принтерам, так и к серверам и прочим устройствам. В процессе установки Ubuntu Server 20.04, как и любой другой версии этой ОС, вам предлагается дать ему имя. Но что делать если вы хотите изменить имя уже после установки? В Ubuntu Server 20.04 — изменение имени сервера происходит следующим образом:
-
Узнаем текущую информацию о сервере
hostnamectl
Эта команда покажет нам текущую информацию о системе. Так же посмотреть под каким пользователем вы авторизованы в системе и на каком сервере, можно посмотреть прямо в командной строке.
Как видно, наш сервер называется ag-raw-server-32gb. -
Изменяем текущее имя сервера
С помощью этой же утилиты, мы изменим постоянное имя сервера
sudo hostnamectl set-hostname adminguide-new-name-server
Как теперь можно увидеть, Static hostname изменился, в то время как в командной строке у нас всё еще старое имя сервера. После перезагрузки новое имя полностью вступит в силу. НО есть несколько подводных камней -
Настройка в файле cloud.cfg
Если у вас используется cloud.cfg, то после перезагрузки, название сервера может вернуться к тому, что было указано при установке. Поэтому вам необходимо отключить это в файле /etc/cloud/cloud.cfg
sudo nano /etc/cloud/cloud.cfg
Открыв файл для редактирования, нужно найти строку preserve_hostname, и значение false, заменить на true. Тогда после перезагрузки, у вас сохранится новое имя сервера. -
Запись в файле hosts
В определенных конфигурациях, например в случае установки на сервер, роли Active Directory Domain Controller, для корректной работы, критично чтобы сервер резолвился по своему имени. Поэтому, если у нас например:
IP адрес сервера: 192.168.1.100
домен где находится сервер: adminguide.lan
Имя сервера: adminguide-new-name-server
То в файле hosts, нам надо добавить строку:
192.168.1.100 adminguide-new-name-server.adminguide.lan adminguide-new-name-server
После сохранения изменений, по команде ping adminguide-new-name-server сервер должен начать пинговать свой адрес 192.168.1.100
Чтобы открыть файл hosts на редактирование, необходимо использовать команду
sudo nano /etc/hosts
Related
We already discussed how to view or find a Linux system’s hostname. In this brief guide, we will see how to set or change hostname in Linux, either temporarily or permanently.
What is Hostname?
A Hostname is an unique, alphanumeric label assigned to a Linux system to identify it on the network. A typical hostname can contain alphabets, numbers and a few special characters such as hyphen (-), period (.), and underscore (_). Generally, a hostname consist of up to 253 characters. Please note that a hostname should not start with a hyphen. In most Linux distributions, the hostname is stored in the /etc/hostname
file.
The hostname is usually set while installing the OS. You can also set a new hostname or change the existing hostname after installing the OS, either from command line or from Settings section in graphical mode. First, we will see the CLI way to set Linux hostname.
1. Set Or Change Hostname On Linux From Commandline
Changing computer name in Linux is no big deal. We can set a Linux system’s name with a few one-liner commands.
The simplest and quickest way to change a Linux system’s hostname is:
$ hostname <new_hostname>
E.g:
$ hostname ostechnix
This command sets the hostname as ostechnix. Please note that this command will only set the computer name temporarily. Once you reboot the system, the hostname will be reverted to old name. To permanently set hostname in Linux, use any one of the following methods.
There are many ways to permanently set or change Linux hostname from commandline. Here are a few methods:
- Using
hostnamectl
command, - Using
nmcli
command, - Editing
/etc/hostname
file, - Using
sysctl
command, - Editing
/proc/sys/kernel/hostname
file.
1.1. Set Linux hostname with hostnamectl command
The hostnamectl
command is used to display and change the system hostname and related settings in Linux systems.
Let us check the current hostname with command:
$ hostname ubuntuserver
As you see in the above output, my Ubuntu system’s name is «ubuntuserver». Let us change it to ostechnixserver.
To set hostname in Linux with hostnamectl
command, run:
$ sudo hostnamectl set-hostname ostechnixserver
Replace the «ostechnixserver» in the above example with your own name.
Log out and log back in to take effect the changes. If you are on SSH session, exit the session and reconnect it.
Now verify if the hostname has been changed or not with hostnamectl
command:
$ hostnamectl Static hostname: ostechnixserver Transient hostname: ubuntuserver Icon name: computer-vm Chassis: vm Machine ID: cb4ade4901394ac5a0d25fa6b3889e6c Boot ID: 78b6e9d83e0e481eb960423e7947e45c Virtualization: oracle Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-60-generic Architecture: x86-64
Or display only the hostname:
$ hostnamectl --static ostechnixserver
Alternatively, you can use the hostname
command:
$ hostname ostechnixserver
1.2. Set Linux hostname with nmcli command
The nmcli
is a commandline tool used to create, display, edit, delete, activate, and deactivate network
connections, as well as control and display network device status in Linux operating systems.
To set hostname in Linux with nmcli command, do:
$ sudo nmcli general hostname ostechnixserver
Log out and log back in to apply the changes.
1.3. Change Linux hostname by editing /etc/hostname file
As mentioned already, the computer name is stored in /etc/hostname
file in most Linux distributions.
Let us look at the contents of this file:
$ cat /etc/hostname ubuntuserver
To change the Linux system’s hostname, edit /etc/hostname
file with your favorite editor:
$ sudo nano /etc/hostname
Replace old hostname with new hostname of your choice.
Save the file and close it. Log out and lag back in to take effect the changes.
Alternatively, use the following one-liner command to update the hostname in /etc/hostname file:
$ echo "ostechnixserver" > sudo tee -a /etc/hostname
1.4. Change Linux hostname with sysctl command
Sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/
. Procfs is required for sysctl support in Linux. You can use sysctl to both read and write sysctl data.
To change hostname in Linux with sysctl
command, run:
$ sudo sysctl kernel.hostname=ostechnixserver
Replace «ostechnixserver» with your own hostname. Don’t forget to log off and log back in to apply the changes.
1.5. Change Linux hostname with ProcFs
Proc file system, or procfs in short, is a virtual file system maintained by the Linux kernel. It is also sometimes referred to as a process information pseudo-file system. It doesn’t contain ‘real’ files but runtime system information such as system memory, devices mounted, hardware configuration etc. All these information are available under a special directory named /proc
in Linux.
If you want to update the hostname, just append the new hostname in /proc/sys/kernel/hostname
file using command:
$ sudo sh -c "echo 'ostechnixserver' > /proc/sys/kernel/hostname"
You need to log out and log back in to apply the changes.
2. Set Or Change Hostname On Linux From Graphical mode
This method is for any Linux distribution installed with GNOME desktop environment.
Open the Gnome Settings section from Dash.
Navigate to About -> Device Name. Click the Device Name option and enter the new hostname.
Hope this helps.
Related read:
- How To Properly Change Username In Linux
Имя компьютера, в полном соответствии с известной поговоркой, как и имя лодки способно влиять на многое, прежде всего на удобство работы и восприятия. А неудачное имя способно только запутывать и заставлять каждый раз тратить дополнительное время. При этом очень хорошо, если у вас будет принята некоторая политика присвоения имен хостам, и вы будете ее придерживаться. А сегодня мы рассмотрим способы управления именем хоста и дополнительной информацией о нем, которые нам предоставляет systemd в виде утилиты hostnamectl.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Можно по-разному относиться к systemd, но нельзя не признать, что он дает администратору простые и удобные инструменты, которые всегда одинаково работают вне зависимости от дистрибутива. Один из них — hostnamectl, но это не просто еще одна утилита, а удобный и информативный инструмент.
Если вы первый раз оказались в незнакомой системе, то просто запустите:
hostnamectl
И вы, кроме имени узла, получите массу полезной информации: версия ОС, версия ядра, архитектура, разрядность, а для виртуальных машин их тип и систему виртуализации. В целом здесь есть ответы на все первоначальные вопросы, которые возникают в новой системе.
При этом вам не нужно угадывать какая именно система перед вами и мучительно вспоминать команды, позволяющие посмотреть ее версию. В любой системе использующей systemd вывод будет выглядеть одинаковым. И только уже хотя бы поэтому о hostnamectl нужно знать.
Но перейдем к основному назначению данной утилиты, а именно управление именем хоста. В Linux поддерживается три возможных имени узла:
- Красивое (pretty) — это имя задается пользователем и может содержать пробелы и специальные символы, например «My Notebook Asus».
- Статичное (static) — задается администратором во время установки системы, может содержать только ASCII-символы без пробелов и точек, либо несколько групп символов через точки, если имя указано в формате FQDN. Максимальная длина — 64 символа.
- Временное (transient) — резервный вариант, получаемый при конфигурировании сети (например, node12345678), используется только в том случае, если не указано статическое имя.
У утилиты есть ряд доступных команд, чтобы ознакомиться с ними наберите:
hostnamectl -h
В ответ на экран будет выведена короткая, но исчерпывающая справка по использованию данного инструмента.
Начнем с команды status, это команда по умолчанию, если вы ничего не указали, то подразумевается, что вы хотите выполнить status, так приведенная нами в самом начале команда:
hostnamectl
На самом деле вызывает:
hostnamectl status
Также мы можем указать, какое именно имя нас интересует:
hostnamectl status --pretty
Или просто:
hostnamectl --pretty
По умолчанию в системе установлено статическое имя и аналогичное ему временное.
Остальные команды позволяют получать или устанавливать определенные параметры. Если вызвать команду без указания параметра, то она покажет текущее значение, если параметр указать — то он будет установлен. Так, например, для получения имени хоста используйте:
hostnamectl hostname
Для установки:
hostnamectl hostname newhostname
Также допускается запись:
hostnamectl set-hostname newhostname
Последний вариант часто используется в инструкциях и документации, так как позволяет понять суть производимых действий без дополнительных пояснений.
При установке имени без использования дополнительных опций будут изменены все три имени, например, мы можем использовать такой вариант:
hostnamectl set-hostname "Ubuntu Browser Test"
В этом случае красивое имя будет установлено именно так, как мы указали, а статическое будет сформировано на его основе в наиболее близкой по содержанию форме.
Как видим, с красивым именем все хорошо, только вот статическое нам категорически не нравится. Давайте исправим именно его, для этого просто укажем команде дополнительную опцию:
hostnamectl set-hostname ubuntu-browser-test --static
А что, если мы еще захотим изменить и временное, но в этом случае система пояснит нам, что так как у нас уже задано статическое имя, то временное использоваться не будет.
Кроме имени хоста мы можем еще указать icon-name — специальное значение, согласно принятой спецификации, на основании которой многие графические утилиты будут автоматически выводить значок для системы.
Следующая необязательная опция — chassis, позволяет указать тип шасси, что влияет на отображение узла в некоторых графических приложениях или доступные способы взаимодействия с ним, допустимы следующие параметры: desktop, laptop, convertible, server, tablet, handset, watch, embedded, плюс два дополнительных типа для виртуальных машин vm и container.
Однако практической необходимости менять эти опции нет. Гораздо интереснее и полезнее использовать следующие две команды.
Так команда deployment позволяет указать среду развертывания данного узла, рекомендуемые значения: development, integration, staging, production, но вы можете указать и свое значение, обязательное условие — это должно быть одно слово, не содержащее недопустимых символов.
Например, мы указали:
hostnamectl deployment testing
Следующая команда — location — позволяет задать размещение узла в любой произвольной форме, можете написать туда все, что хотите, включая адрес, место размещения в стойке и т.д. и т.п.
hostnamectl location "Lan Lab IT31"
Вся указанная информация будет доступна при выполнении команды status.
Это удобно, так как позволяет быстро понять в каком контуре развернута данная машина и где именно она расположена. Мы рекомендуем использовать данные опции, так как это позволяет быстро получить дополнительную информацию и избежать дополнительных вопросов или досадных ошибок, например, перепутав тестовый сервер с рабочим.
И, наконец, еще одна интересная опция —json, которая позволяет вывести результат в формате JSON, что удобно для последующей машинной обработки. У опции есть два параметра pretty и short, в первом случае выводится человекочитаемый формат, во втором — короткий.
На этом наша статья подходит к концу, как видим, hostnamectl — это мощный и удобный инструмент, возможности которого не сводятся только к изменению имени хоста и каждый системный администратор, работающий с современным Linux должен знать и уметь пользоваться этим инструментом.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.