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

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

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

445 голосов | спросил Deepak Rajput 14 WedEurope/Moscow2011-12-14T12:56:36+04:00Europe/Moscow12bEurope/MoscowWed, 14 Dec 2011 12:56:36 +0400 2011, 12:56:36

14 ответов


581

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

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

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

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

ответил jasperado 14 WedEurope/Moscow2011-12-14T14:27:18+04:00Europe/Moscow12bEurope/MoscowWed, 14 Dec 2011 14:27:18 +0400 2011, 14:27:18
243

Ubuntu 13.04 вперед

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

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

hostnamectl set-hostname new-hostname

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

ответил muru 28 AM00000010000001331 2014, 01:03:13
58

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

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

ответил One Zero 14 FebruaryEurope/MoscowbTue, 14 Feb 2012 00:16:39 +0400000000amTue, 14 Feb 2012 00:16:39 +040012 2012, 00:16:39
42

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

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

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

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

    sudo -H gedit /etc/hostname и sudo -H gedit /etc/hosts

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

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

ответил Mohsen Gh. 2 72014vEurope/Moscow11bEurope/MoscowSun, 02 Nov 2014 01:47:31 +0300 2014, 01:47:31
16

Вот сценарий, который изменяет имя хоста предписанным образом. Это гарантирует, что не только 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}')"
ответил Lucas 7 MaramFri, 07 Mar 2014 10:30:44 +04002014-03-07T10:30:44+04:0010 2014, 10:30:44
11

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

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

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

ответил Tombart 31 MarpmTue, 31 Mar 2015 17:46:53 +03002015-03-31T17:46:53+03:0005 2015, 17:46:53
7

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

cat /etc/hostname

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

ответил tagMacher 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 14 Sep 2014 05:12:20 +0400 2014, 05:12:20
4
  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
ответил George 8 Maypm15 2015, 21:26:41
4

Ubuntu 16.04

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

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

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

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

ответил shonku 13 MarpmMon, 13 Mar 2017 21:26:19 +03002017-03-13T21:26:19+03:0009 2017, 21:26:19
3
sudo hostname your-new-name
sudo /etc/init.d/networking restart

Это должно делать то, о чем я думаю.

ответил OmarQunsul 20 FriEurope/Moscow2013-12-20T16:43:43+04:00Europe/Moscow12bEurope/MoscowFri, 20 Dec 2013 16:43:43 +0400 2013, 16:43:43
3

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

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

$ sudo service hostname restart
$ exec bash

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

ответил Raman 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 28 Sep 2016 21:55:45 +0300 2016, 21:55:45
3

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

sudo hostname -F /etc/hostname

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

ответил Josip Rodin 14 +03002017-10-14T20:55:58+03:00312017bEurope/MoscowSat, 14 Oct 2017 20:55:58 +0300 2017, 20:55:58
1

Ubuntu 16.04

Решение основано на

ответил Jekis 12 Jam1000000amFri, 12 Jan 2018 09:29:42 +030018 2018, 09:29:42
0

Постоянное имя узла (Ubuntu 18+)

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

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

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

sudo touch /etc/cloud/cloud-init.disabled
ответил Pierz 18 J0000006Europe/Moscow 2018, 17:20:31

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132