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

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

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

532
задан 28 August 2014 в 00:08

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

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

666
ответ дан 28 August 2014 в 00:08

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

  1. Нажмите Ctrl Alt t на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните следующую команду: 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 и отредактируйте их один за другим. В обоих файлах измените имя на свое и сохраните его.

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

44
ответ дан 28 August 2014 в 00:08

Ubuntu 16.04

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

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

Открыть терминал. Посмотрите сами.

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

4
ответ дан 28 August 2014 в 00:08

Ubuntu 16.04

Решение, основанное на ответе сообщества DigitalOcean.

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

$ sudo nano / etc / hosts

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

127.0.0.1 localhost newname

Установите новое имя хоста.

$ sudo hostnamectl set-hostname newname

4
ответ дан 28 August 2014 в 00:08

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

Изменение имени хоста или имени компьютера в 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, выберите восстановление и отредактируйте файл хоста до правильных настроек)

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

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

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

sudo service hostname start

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

64
ответ дан 28 August 2014 в 00:08
sudo hostname your-new-name
sudo /etc/init.d/networking restart

Это должно выполнить ту работу, которая, как я думаю

3
ответ дан 28 August 2014 в 00:08
  1. Замените содержимое /etc/hostname на нужное имя хоста (вы можете редактировать с помощью sudo nano /etc/hostname)
  2. В /etc/hosts замените запись рядом с 127.0.1. 1 с нужным именем хоста (вы можете редактировать с помощью sudo nano /etc/hosts)
  3. Выполните перезапуск sudo service hostname; sudo service network restart
4
ответ дан 28 August 2014 в 00:08

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

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

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

14
ответ дан 28 August 2014 в 00:08

Ubuntu 13.04 и новее

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

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

hostnamectl set-hostname new-hostname

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

297
ответ дан 28 August 2014 в 00:08

Вот сценарий, который изменяет имя хоста предписанным способом. Это гарантирует, что не только 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}')"
17
ответ дан 28 August 2014 в 00:08

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

Хотя описанные выше подходы ( hostnamectl , etc / hostname и т. Д.) Работают для немедленное изменение имени хоста, с появлением cloud-init , который, среди прочего, может управлять настройкой имени хоста. Таким образом, он не будет зависать после перезагрузки, если установлен 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
20
ответ дан 28 August 2014 в 00:08

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

cat /etc/hostname

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

7
ответ дан 28 August 2014 в 00:08

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

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

$ sudo service hostname restart
$ exec bash

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

3
ответ дан 28 August 2014 в 00:08

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

sudo hostname -F /etc/hostname

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

4
ответ дан 28 August 2014 в 00:08

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

Похожие вопросы: