Как изменить hostname на сервере

Как изменить имя компьютера Hostname. Команда hostname, hostnamectl

Как изменить Hostname

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

Имя компьютера или по-другому, имя хоста устанавливается во время установки системы. Оно используется для идентификации компьютера в локальной сети, например, передается службой NetBIOS как имя сервера Samba, а также вы будете постоянно видеть его в терминале перед приглашением ввода команды.

Если вы задали не такое имя как хотите во время установки, то изменить имя компьютера Ubuntu не так уж сложно, но графических инструментов для этого в системе придумано не было, поэтому придется делать все через терминал.

Требования к имени компьютера

Вы можете использовать практически любое имя компьютера, но для него есть некоторые ограничения. Не желательно использовать два одинаковых имени компьютера в одной локальной сети, иначе могут возникнуть проблемы с различными интернет-сервисами и самая очевидная — вы не сможете понять где какой компьютер.

Второе ограничение — имя компьютера может содержать только буквы английского алфавита от a до z, цифры от 0 до 9, а также символы дефиса и точки. Начинаться и заканчиваться имя должно только буквой или цифрой, а не символом подчеркивания. Имя хоста регистронезависимо, поэтому COMPUTER и computer будут означать одно и то же. По длине стоит ограничение от 2 до 69 символов, но этого вполне достаточно.

Как изменить имя компьютера

Посмотреть текущее имя компьютера можно выполнив команду hostnamectl без параметров:

hostnamectl

Изменить имя хоста Ubuntu можно несколькими способами. Самый простой способ установить имя компьютера, которое сохранится только до перезагрузки можно использовать команду hostname, которой в параметре нужно передать новое имя. Например:

sudo hostname losst-pc

Но после перезагрузки все вернется как было раньше. Чтобы сделать изменения постоянными нужно изменить содержимое двух файлов. /etc/hostname и /etc/hosts:

sudo vi /etc/hostname

Удалите старое имя из этого файла и пропишите новое. Затем сохраните изменения.

В современных версиях Ubuntu вы можете использовать команду hostnamectl, в отличие от первого варианта изменения сохранятся после перезагрузки:

sudo hostnamectl set-hostname новое_имя

Затем откройте второй файл:

sudo vi /etc/hosts

Здесь немного сложнее, найдите строку:

127.0.0.1 старое_имя

И замените старое имя на новое, после этого необходимо перезагрузить компьютер. Если вы не хотите перезагружать систему, то вы можете просто перезагрузить сервис управления входом пользователей:

systemctl restart systemd-logind.service

Теперь все должно работать правильно. Но это не единственный способ сменить имя хоста в Ubuntu.

Не меняется имя компьютера

Если вы поменяли имя компьютера, а после перезагрузки восстанавливается все как было, например, какое-то там dhcpcd0-pc, то, скорее всего, виноват NetworkManager. Здесь решение либо удалить эту программу, либо изменить имя хоста Ubuntu с помощью NetworkManager. Для этого выполните:

sudo vi /etc/NetworkManager/NetworkManager.conf

И добавьте в файл такие строки:

[keyfile]
hostname=имя_компьютера

Теперь после перезагрузки NetworkManager поменяет имя хоста Ubuntu на правильное и больше проблем с этим не будет.

Выводы

Вот и все, теперь вы знаете как сменить имя компьютера Ubuntu. Для этого есть вполне достаточно способов, чтобы вы могли выбрать именно то, что нужно. Если у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Имя хоста задается во время установки операционной системы или динамически назначается виртуальной машине при ее создании.

В этом руководстве объясняется, как установить или изменить имя хоста в Ubuntu 20.04 без перезагрузки системы.

Общие сведения об именах хостов

Имя хоста — это метка, которая идентифицирует устройство в сети. У вас не должно быть двух или более машин с одинаковым именем хоста в одной сети.

В Ubuntu вы можете редактировать системное имя хоста и соответствующие настройки с помощью команды hostnamectl . Этот инструмент распознает три разных класса имен хостов:

  • static — традиционное имя хоста. Он хранится в /etc/hostname и может быть установлен пользователем.
  • pretty — описательное имя хоста UTF8 в свободной форме, используемое для представления пользователю. Например, Linuxize's laptop .
  • transient — динамическое имя хоста, поддерживаемое ядром. Серверы DHCP или mDNS могут изменять временное имя хоста во время выполнения. По умолчанию это то же самое, что и static имя хоста.

Рекомендуется использовать полное доменное имя ( FQDN ), например host.example.com как для static и для transient имен.

Только root или пользователи с привилегиями sudo могут изменять системное имя хоста.

Отображение текущего имени хоста

Чтобы просмотреть текущее имя хоста, вызовите команду hostnamectl без аргументов:

hostnamectl

В этом примере текущее имя хоста установлено на ubuntu2004.localdomain .

Изменение имени хоста системы

Изменение имени хоста системы — простой процесс. Синтаксис следующий:

sudo hostnamectl set-hostname host.example.comsudo hostnamectl set-hostname "Your Pretty HostName" --prettysudo hostnamectl set-hostname host.example.com --staticsudo hostnamectl set-hostname host.example.com --transient

Например, чтобы изменить статическое имя хоста системы на neptune.linuxize.com , вы должны использовать следующую команду:

sudo hostnamectl set-hostname neptune.linuxize.com

При желании вы также можете установить красивое имя хоста:

sudo hostnamectl set-hostname "Linuxize's laptop" --pretty

hostnamectl не производит вывода. В случае успеха возвращается 0, в противном случае — ненулевой код ошибки.

Статическое имя хоста хранится в /etc/hostname , а красивое имя хоста хранится в /etc/machine-info .

Вы не должны использовать одно и то же имя хоста на двух разных машинах в одной сети.

В большинстве систем имя хоста отображается на 127.0.0.1 в /etc/hosts . Откройте файл и измените старое имя хоста на новое.

/etc/hosts

127.0.0.1   localhost
127.0.0.1   neptune.linuxize.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Если вы используете Ubuntu в облачном экземпляре и установлен пакет cloud-init , вам также необходимо отредактировать файл /etc/cloud/cloud.cfg . Этот пакет обычно устанавливается по умолчанию в образах, предоставляемых поставщиками облачных услуг, и используется для обработки инициализации экземпляров облака.

Если файл существует в вашей системе, откройте его:

sudo vim /etc/cloud/cloud.cfg

Найдите preserve_hostname и измените значение с false на true :

/etc/cloud/cloud.cfg

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true

Сохраните файл и закройте редактор.

Проверить изменение

Чтобы убедиться, что имя хоста было полностью изменено, введите команду hostnamectl :

hostnamectl

Ваше новое имя хоста будет напечатано на терминале:

   Static hostname: neptune.linuxize.com
   Pretty hostname: Linuxize's desktop
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a04e3543f3da460294926b7c41e87a0d
           Boot ID: aa31b274703440dfb622ef2bd84c52cb
    Virtualization: oracle
  Operating System: Ubuntu 20.04 LTS
            Kernel: Linux 5.4.0-26-generic
      Architecture: x86-64

Выводы

Мы показали вам, как легко изменить имя хоста при установке Ubuntu 20.04 без перезагрузки компьютера.

Существует ряд причин, по которым вам может потребоваться изменить имя хоста. Чаще всего это когда имя хоста устанавливается автоматически при создании экземпляра.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Имя хоста устанавливается во время установки операционной системы Ubuntu или, если вы запускаете виртуальную машину, оно динамически назначается экземпляру при запуске.

Метод, описанный в этом руководстве, будет работать без перезапуска системы.

Хотя это руководство написано для Ubuntu 18.04, те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Linux Mint и Elementary OS.

Введение

Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .

Имя хоста — это метка, которая идентифицирует машину в сети. Вы не должны использовать одно и то же имя хоста на двух разных машинах в одной сети.

Показать текущее имя хоста 

Чтобы просмотреть текущее имя хоста, введите следующую команду:

hostnamectl 

Как вы можете видеть на изображении выше, текущее имя хоста установлено на ubuntu1804.localdomain .

Изменить имя хоста 

Следующие шаги описывают, как изменить имя хоста в Ubuntu 18.04.

1. Измените имя хоста с помощью hostnamectl 

В Ubuntu 18.04 мы можем изменить имя хоста системы и соответствующие настройки с помощью команды hostnamectl .

Например, чтобы изменить статическое имя хоста системы на linuxize , вы должны использовать следующую команду:

sudo hostnamectl set-hostname linuxize 


   Команда hostnamectl не производит вывода. В случае успеха возвращается 0, в противном случае — ненулевой код ошибки.

2. Отредактируйте /etc/hosts  файл

Откройте /etc/hosts файл и измените старое имя хоста на новое.

/ etc / hosts

127.0.0.1   localhost
127.0.0.1   linuxize

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
 

3. Отредактируйте cloud.cfg файл

Если cloud-init пакет установлен, вам также необходимо отредактировать cloud.cfg файл. Этот пакет обычно устанавливается по умолчанию в образах, предоставляемых поставщиками облачных услуг, такими как AWS, и используется для обработки инициализации экземпляров облака.

Чтобы проверить, установлен ли пакет, выполните следующую ls команду :

ls -l /etc/cloud/cloud.cfg 

Если вы видите следующий вывод, это означает, что пакет не установлен и никаких дальнейших действий не требуется.

ls: cannot access '/etc/cloud/cloud.cfg': No such file or directory

 

Если пакет установлен, вывод будет выглядеть следующим образом:

-rw-r--r-- 1 root root 3169 Apr 27 09:30 /etc/cloud/cloud.cfg

 

В этом случае вам нужно будет открыть /etc/cloud/cloud.cfg файл:

sudo vim /etc/cloud/cloud.cfg 

Найдите preserve_hostname и измените значение с false на true :

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
 

Сохраните файл и закройте редактор.

Проверить изменение

Чтобы убедиться, что имя хоста было успешно изменено, еще раз используйте hostnamectl  команду:

hostnamectl 
   Static hostname: linuxize
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 6f17445f53074505a008c9abd8ed64a5
           Boot ID: 1c769ab73b924a188c5caeaf8c72e0f4
    Virtualization: kvm
  Operating System: Ubuntu 18.04 LTS
            Kernel: Linux 4.15.0-22-generic
      Architecture: x86-64
 

Вы должны увидеть ваше новое имя сервера, напечатанное на консоли.

Вывод

В этом руководстве мы показали вам, как легко изменить имя хоста сервера Ubuntu без перезагрузки компьютера.

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

  1. Check existing hostname

  2. Modify the value to match your FQDN hostname,
    as shown in the following example:

    $  hostnamectl set-hostname NEW-HOST
    $  hostname
    NEW-HOST
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. Change networking configuration /etc/sysconfig/network

    $  vim /etc/hostname
    hostname.domainname.com
    
  7. 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
    
  8. 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
    
  9. 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 — изменение имени сервера происходит следующим образом:

  1. Узнаем текущую информацию о сервере

    hostnamectl

    Эта команда покажет нам текущую информацию о системе. Так же посмотреть под каким пользователем вы авторизованы в системе и на каком сервере, можно посмотреть прямо в командной строке.
    Ubuntu 18.04 LTS - hostnamectlКак видно, наш сервер называется ag-raw-server-32gb.

  2. Изменяем текущее имя сервера

    С помощью этой же утилиты, мы изменим постоянное имя сервера

    sudo hostnamectl set-hostname adminguide-new-name-server

    Ubuntu 18.04 LTS - hostnamectl set-hostnameКак теперь можно увидеть, Static hostname изменился, в то время как в командной строке у нас всё еще старое имя сервера. После перезагрузки новое имя полностью вступит в силу. НО есть несколько подводных камней

  3. Настройка в файле cloud.cfg

    Если у вас используется cloud.cfg, то после перезагрузки, название сервера может вернуться к тому, что было указано при установке. Поэтому вам необходимо отключить это в файле /etc/cloud/cloud.cfg

    sudo nano /etc/cloud/cloud.cfg

    Ubuntu 18.04 LTS - preserve_hostnameОткрыв файл для редактирования, нужно найти строку preserve_hostname, и значение false, заменить на true. Тогда после перезагрузки, у вас сохранится новое имя сервера.

  4. Запись в файле 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

Text.ru - 100.00%

Related

Параметр hostname используется используется многими сетевыми программами для идентификации машины на базе Linux. Именно это значение будет устанавливаться в системе DNS или при вводе в домен компьютера. В статье ниже рассмотрены основные способы изменения hostname машины для Linux. В начале будет рассмотрен базовый сценарий, который исторически работал в разных дистрибутивах linux, а ниже рассмотрим вариант использования универсальной команды hostnamectl, которую поддерживают многие современные дистрибутивы linux.

Как отобразить текущее значение hostname?

Чтобы определить текущее имя машины Linux достаточно ввести команду hostname. В результате, будет выведено на экран имя сервера.

[admin@server01 ~]# hostname
server01

Как изменить текущее значение hostname?

Для изменения значения hostname до следующего перезапуска сервера для можно также использовать команду hostname, но после перезапуска сервера все настройки сбросятся.

[admin@server01 ~]# hostname
server01
[admin@server01 ~]# hostname server02
[admin@server01 ~]# hostname
server02

Для того чтобы изменения hostname применились на постоянной основе необходимо отредактировать файл /etc/hostname, записать в него новое значение имени машины и перезагрузить ее.

Как изменить hostname в Linux используя hostnamectl?

hostnamectl — это выделенная утилита для упраления системным именем хоста (hostename). Она имеет 6 основных команд:

  1. status — команда по умолчанию, отображает текущее имя хоста системы и связанную с ним информацию
  2. set-hostname NAME — Устанавливает новое имя стсемы (Hostname).
  3. set-icon-name NAME — Изменяет значка системы, который используется некоторыми графическими приложениями для визуализации.
  4. set-chassis TYPE — Устанавливает тип шасси, как и предыдущий, используется в графическими приложениями для визуализации, на текущий момент определены следующие типы шасси: (desktop, laptop, convertible, server, tablet, handset, watch, embedded, vm, container)
  5. set-deployment ENVIRONMENT — Задает тип среды, к которой относится данная машина. Может иметь значения: (development, integration, staging, production)
  6. set-location LOCATION — Устанавливает текствое описание размещения сервера, например, город, номер стойки, номер юнита или название кластера и среды виртуализации

 и 6 различных опций указывающих параметры выполнения основной команды, например, параметры для изменения hostname  на удаленной машине.
Пример вывода результата команды: hostnamectl или hostnamectl status

[root@server01 ~]# hostnamectl
Static hostname: server01
Icon name: computer-vm
Chassis: vm
Deployment: Production
Location: Samara
Machine ID: f734b9e659fe237f9f751e25dee5a5c7
Boot ID: 48123c30cab94de6a11157037bf49991f5
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.12.1.el7.x86_64
Architecture: x86-64

При этом не заданные значения Deployment и Location отображаться не будут.

А для смены имени локальной машины с имени server01 на имя server02 достаточно выполнить команду:

hostnamectl set-hostname server02

и перезапустить машину.

Как изменить hostname удаленно?

Для изменения hostname на удаленной машине, можно использовать следующую команду:

[admin@server ~]# ssh root@server01 hostnamectl set-hostname server02

либо можно использовать следующие возможности команды hostnamectl:

[admin@server ~]# hostnamectl set-hostname server02 -H root@server01

A hostname is a human-readable string that helps people refer to a computer by a familiar name, rather than by a number or unwieldy descriptors like, «the third one from the bottom of the second-to-last rack.» Often, a hostname is set during the installation process, but there are times when it needs to be changed. On Linux, there are many ways to set a hostname, and this article aims to cover them all.

Before exploring the tools related to hostnames, though, you must understand the different contexts in which the term is used. There are potentially two designators of a system’s hostname: the computer’s administrator (a laptop’s owner, or a server’s root user) and the network (depending on protocols and settings). This factor can lead to confusion, because you might look at your computer’s hostname and see one value, only to find that the same computer is referred to as something different over the network.

There’s a historical reason for this situation. Long ago, before DNS, hosts on a network had to be defined locally in the file /etc/hosts. If there were 31 hosts on a network and a new one was added, then 32 hosts had to update their /etc/hosts file to reflect the correct IP address and corresponding hostname for each of their neighbors. This process didn’t scale well for bigger networked systems such as the World Wide Web (the Internet), and so DNS was invented, and the concept of hostnames largely was abstracted away from local computers to instead be managed by the network.

Today, the important hostname is the one the network uses. The hostname value in /etc/hosts is often set to localhost by default.

With this context in mind, here are all the different ways to manipulate a hostname on Linux.

[ Free download: Advanced Linux commands cheat sheet. ]

Change all three names with hostnamectl

The hostnamectl command from systemd can manipulate three varieties of hostnames:

  • Transient: Received from network configuration.
  • Static: Provided by the kernel.
  • Pretty: Provided by the user.

A transient hostname can change as needed to avoid name collisions. For instance, if you name your computer penguin but there’s already another host with that name on the network, your network hostname becomes penguin-1.

Static and pretty hostnames are a little like local variables: They’re used for activities occurring on the local machine, mostly as a convenience for the user, along with applications that need to know whether they’re running locally or remotely (for example, over a forwarded X session).

When invoked without any arguments, hostnamectl returns the static and pretty names, plus some system information:

$ hostnamectl
   Static hostname: penguin
   Pretty hostname: Penguin VM
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 418d9ce8ead44bbfb6970c0d356b89bf
           Boot ID: fb3a310237ef41f88b1c62c26f19065a
    Virtualization: kvm
  Operating System: Fedora 30 (Workstation Edition)
       CPE OS Name: cpe:/o:fedoraproject:fedora:30
            Kernel: Linux 5.0.9-301.fc30.x86_64
      Architecture: x86-64
$ sudo hostnamectl set-hostname --pretty "Web dev test environment"
$ sudo hostnamectl set-hostname --static webdev-test-env
$ hostnamectl
   Static hostname: webdev-test-env
   Pretty hostname: Web dev test environment
   [...]

Change the static and pretty names in the GUI with GNOME Settings

If you want to set the static and pretty names in a desktop application, use GNOME Settings. To launch GNOME Settings, go to the Activities menu in the upper left corner of your GNOME desktop. Type Settings into the search field, or click the Show Applications icon on the left dock and find Settings in the application icons as shown below:

The (GNOME) Settings icon within Show Applications.The (GNOME) Settings Device menu.

$ hostnamectl
   Static hostname: rockhopper-computer
   Pretty hostname: rockhopper computer
   [...]

Change the static name with cockpit

Fedora, CentOS, and RHEL systems feature a web console application called Cockpit for monitoring and configuring local and remote machines. Using Cockpit, you can change the static hostname for your own machine, or any machine you administer (as long as it has Cockpit enabled).

First, install and enable Cockpit:

$ sudo dnf install cockpit
[...]
$ sudo systemctl enable --now cockpit

Logging into Cockpit.

In the web console, click the System tab in the left column. Click the entry for Host name and edit the Pretty Host Name and (static) Real Host Name:

Changing the pretty and static hostnames in Cockpit.

$ sudo echo "galapagos" > /etc/hostname 
$ hostnamectl
   Static hostname: snares
   Pretty hostname: rockhopper web console computer
   [...]

Change the static name in the hostname file

You can also set the static hostname manually by editing /etc/hostname. This file contains exactly one line by default. If you have not changed the hostname yet, then that line probably reads localhost.localdomain. If you have used hostnamectl to change the hostname already, then this file reflects that change.

Editing this file manually is not necessarily recommended, because it doesn’t update all the other hostname values the way hostnamectl does. For example:

$ sudo echo "galapagos" > /etc/hostname 
$ hostnamectl
   Static hostname: galapagos
   Pretty hostname: rockhopper computer
   Transient hostname: rockhopper-computer
   [...]

Change the static name with nmcli

Another way to change a static hostname is through the command line interface for Network Manager, nmcli:

$ sudo nmcli general hostname emperor
$ hostnamectl
   Static hostname: emperor
   Pretty hostname: rockhopper computer
   Transient hostname: rockhopper-computer
   [...]

Change the transient name with sysctl

The sysctl command allows you to configure kernel parameters while Linux is running (that is, instead of at boot time). Your computer’s transient hostname is a kernel parameter, so you can modify it with this command:

$ sudo sysctl kernel.hostname=humboldt
$ hostnamectl
   Static hostname: emperor
   Pretty hostname: rockhopper computer
   Transient hostname: humboldt
   [...]

Change the transient name with hostname

The hostname command from the util-linux package is a simple tool to query and set the transient hostname.

To query your current hostname:

$ hostname
humboldt
$ sudo hostname fjordland
$ hostnamectl
   Static hostname: emperor
   Pretty hostname: rockhopper computer
Transient hostname: fjordland

Be careful with /etc/hosts

The /etc/hosts file is mostly historic, although it is used by some applications and protocols, and can be a useful method for creating shortcuts to hosts you use often. You can use it to set a hostname, but usually, you’re just creating an alias to localhost at IP address 127.0.0.1 (your computer’s network loopback address).

For example, if you change /etc/hosts from the default entries like this:

$ cat /etc/hosts
127.0.0.1   magellanic magellanic.localdomain magellanic magellanic.localdomain4
::1         magellanic magellanic.localdomain magellanic magellanic.localdomain6
$ ping -c 1 localhost
PING localhost(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.182 ms
[...]
$ ping -c 1 magellanic
PING magellanic(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.181 ms
[...]
$ hostnamectl
   Static hostname: emperor
   Pretty hostname: rockhopper computer
   Transient hostname: fjordland

Follow the conformity convention

As you can tell from the iterations within this article, a computer’s hostname can get confusing should you use too many methods to set it, or if you change it frequently. While nothing enforces uniformity across hostname types, it’s a convention to keep everything the same on each computer.

Choose a memorable name and use it for your pretty name. Let the static and transient names be derived from that. Just as importantly, in a large network, choose meaningful names. For instance, all upper management computers may be named after a D&D monster, while all computers in the IT department may be named after a famous starship, and so on. Using a naming schema helps avoid name collisions and provides context to an otherwise dizzying list of network hosts.

Понравилась статья? Поделить с друзьями:
  • Как изменить hostname windows 10
  • Как изменить hex код
  • Как изменить hostname vmware
  • Как изменить help на сервере minecraft
  • Как изменить hostname ubuntu server