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

411

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

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

    
задан Deepak Rajput 14.12.2011 в 09:56
источник

13 ответов

533

Это легко. Просто нажмите значок 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.12.2011 в 11:27
источник
218

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 27.08.2014 в 23:03
источник
56

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

Изменение имени хоста или имени компьютера в 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

Примечание : я прочитал его на форуме & gt; Измените / 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 13.02.2012 в 21:16
источник
40

Имя по умолчанию было установлено при установке Ubuntu. Вы можете легко изменить его на все, что угодно, в Desktop & amp; 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. 01.11.2014 в 23:47
источник
15

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

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

#!/usr/bin/env bash
NEW_HOSTNAME=
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(,"\"&\""); print}')"
    
ответ дан Lucas 07.03.2014 в 07:30
источник
11

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

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

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

    
ответ дан Tombart 31.03.2015 в 16:46
источник
7

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

cat /etc/hostname

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

    
ответ дан tagMacher 14.09.2014 в 03:12
источник
4
sudo hostname your-new-name
sudo /etc/init.d/networking restart

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

    
ответ дан OmarQunsul 20.12.2013 в 13:43
источник
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 08.05.2015 в 20:26
источник
4

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

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

$ sudo service hostname restart
$ exec bash

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

    
ответ дан Raman 28.09.2016 в 20:55
источник
4

Ubuntu 16.04

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

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

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

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

    
ответ дан shonku 13.03.2017 в 19:26
источник
2

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

sudo hostname -F /etc/hostname

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

ответ дан Josip Rodin 14.10.2017 в 19:55
источник
0

Ubuntu 16.04

Решение основано на ответ дан Jekis 12.01.2018 в 07:29

источник

Ознакомьтесь с другими вопросами по меткам