Как мне изменить имя хоста без перезагрузки?

Я хочу изменить имя хоста ОС, но не хочу перезапускать.

Я редактировал /etc/hostname но для его реализации требуется перезагрузка. Как этого избежать?

14 ответов

Решение

Это просто. Просто нажмите на значок шестеренки (расположен в правом верхнем углу экрана), откройте экран "Об этом компьютере" (находится на значке шестеренки) и отредактируйте "Имя устройства".

Или в терминале используйте следующую команду:

sudo hostname your-new-name

Это установит имя хоста на ваше новое имя, пока вы не перезапустите. Увидеть man hostname и как мне изменить имя компьютера? для дополнительной информации. Не использовать _ на ваше имя.

Заметка

После перезагрузки ваши изменения в /etc/hostname будет использоваться, поэтому (как вы сказали в вопросе), вы все равно должны использовать

sudo -H gedit /etc/hostname

(или другой редактор), чтобы этот файл содержал имя хоста.

Чтобы проверить, что файл настроен правильно, запустите:

sudo service hostname start

Вы также должны отредактировать /etc/hosts и измените строку, которая гласит:

127.0.1.1     your-old-hostname

так что теперь он содержит ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут работать.)

Ubuntu 13.04 года

hostnamectl Команда является частью установки по умолчанию в версиях для настольных компьютеров и серверов.

Он сочетает в себе установку имени хоста через hostname командование и редактирование /etc/hostname, Помимо установки статического имени хоста, он может установить "красивое" имя хоста, которое не используется в Ubuntu. К сожалению, редактирование /etc/hosts все еще должно быть сделано отдельно.

hostnamectl set-hostname new-hostname

Эта команда является частью systemd-services пакет (который, начиная с Ubuntu 14.04, также включает timedatectl а также localectl команд). Как Ubuntu мигрирует в systemd Этот инструмент - будущее.

Без перезагрузки

Изменение имени хоста или компьютера в Ubuntu без перезагрузки

Отредактируйте / etc / hostname и измените на новое значение,

nano /etc/hostname 

Отредактируйте / etc / hosts и измените старую строку 127.0.1.1 на новое имя хоста

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Примечание: я прочитал его на форуме> Отредактируйте / etc / hosts и измените старую строку 127.0.1.1 на новое имя хоста (если вы этого не сделаете, вы больше не сможете использовать sudo. Если вы уже сделали это нажмите ESC в меню grub, выберите recovery и отредактируйте файл хоста с правильными настройками)

Теперь после перезагрузки, ваше имя хоста будет новым, которое вы выбрали

Без перезагрузки

Чтобы изменить без перезагрузки, вы можете просто использовать hostname.sh после редактирования / etc / hostname. Вы должны хранить оба имени хоста в /etc/hosts (127.0.0.1 newhost oldhost), пока не выполните следующую команду:

sudo service hostname start

Примечание: выше команды, чтобы сделать изменение активным. Имя хоста, сохраненное в этом файле (/etc/hostname), будет сохранено при перезагрузке системы (и будет установлено с использованием той же службы).

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

  1. Нажмите CtrlAltt на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните следующую команду: sudo hostname NEW_NAME_HERE

Это изменит имя хоста до следующей перезагрузки. Изменение не будет видно сразу в вашем текущем терминале. Запустите новый терминал, чтобы увидеть новое имя хоста.

  1. Чтобы изменить имя навсегда, выполните команду для редактирования файлов хоста:

    sudo -H gedit /etc/hostname а также sudo -H gedit /etc/hosts

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

Наконец, перезагрузите компьютер, чтобы изменения вступили в силу.

Сохранение имени хоста в Cloud-init (Ubuntu 18+)

Хотя вышеперечисленные подходы (hostnamectl, etc/hostnameи т. д.) работать для немедленной смены имени хоста, с появлением https://cloud-init.io/ - который может управлять настройкой имени хоста - среди многих других вещей. Таким образом, он не будет зависать после перезагрузки, если установлен cloud-init. Если вы хотите, чтобы изменение сохранялось после перезагрузки, вам нужно отредактировать конфигурационные файлы cloud-init, отключив модуль установки / обновления имени хоста cloud-init:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

или полностью отключить cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

Вот скрипт, который меняет имя хоста в установленном порядке. Это гарантирует, что не только sudo но приложения X11 продолжают функционировать без перезагрузки.

Использование: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

Без перезапуска:

  1. изменить имя хоста в /etc/hostname
  2. Обновить /etc/hosts соответственно
  3. sudo sysctl kernel.hostname=mynew.local.host

Проверьте ваше текущее имя хоста с hostname -f

Чтобы получить ваше текущее имя хоста:

cat /etc/hostname

Это можно изменить в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, до 127.0.0.1 в /etc/hosts.

Классический ответ на вопрос оригинального плаката заключается в том, что, как только вы отредактировали /etc/hostname, вы можете применить его без перезагрузки, запустив hostname(1) с -F (--file) опция от имени root:

sudo hostname -F /etc/hostname

Обработка имени хоста (5) с помощью /etc/hostname и упомянутая программа была одинаковой в Debian и его производных уже более двадцати лет, и пакет, обеспечивающий ее, был помечен как необходимый и необходимый, и IIRC сценарии инициализации буквально использовали одно и то же в течение десятилетий (/etc/init/hostname.conf все еще содержит это), таким образом, я должен сказать, что я действительно озадачен, как никто не упомянул это уже:)

Ubuntu 16.04

Решение основано на ответе от DigitalOcean Comunity.

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

$ sudo nano /etc/hosts

Замените старое имя новым.

127.0.0.1 localhost newname

Настройте новое имя хоста.

$ sudo hostnamectl set-hostname newname

Ubuntu 16.04

Это без перезапуска и без использования терминала.

  • Зайдите в Настройки системы -> Детали.
  • Вот оно Рядом с именем устройства есть текстовое поле.
  • Редактировать текстовое поле и закрыть окно.

Откройте терминал. Смотрите сами.

(Для более старых версий текстовое поле не редактируется.)

  1. Заменить содержимое /etc/hostname с желаемым именем хоста (вы можете редактировать с помощью sudo nano /etc/hostname)
  2. В /etc/hosts, заменить запись рядом с 127.0.1.1 с желаемым именем хоста (вы можете редактировать с помощью sudo nano /etc/hosts)
  3. казнить sudo service hostname restart; sudo service networking restart
sudo hostname your-new-name
sudo /etc/init.d/networking restart

Это должно сделать работу, я думаю

Я прочитал ответы, но я думаю, что, вероятно, вы ищете это:

Просто выполните эти две команды после редактирования /etc/hostname файл.

$ sudo service hostname restart
$ exec bash

Это все. Не нужно перезапускать. Также убедитесь, что вы также измените имя в /etc/hosts файл.

Другие вопросы по тегам