Як змінити ім'я комп’ютера?


327

Коли я підключаюсь до свого сервера (сервер ubuntu 10.10), я отримую таке:

name@server-name.belkin ~>

Як я можу видалити ".belkin"?


1
Спробуйте редагувати / etc / hosts. gksudo gedit / etc / hosts і замінити сервер-name.belkin на будь-яке ім'я.
LFC_fan

2
Ви хочете змінити власне ім’я сервера або просто спосіб відображення у підказці?
Дейв Дженнінгс

2
Голосування за повторне відкриття, оскільки це суперсеть (дозволяє перезапустити).
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

як це питання закривається на користь того, що було задано через рік ?
warren

@warren поточний консенсус має бути закритим на "якість": meta.stackexchange.com/questions/147643/… Оскільки "якість" не піддається вимірюванню, я просто переходжу до результатів. ;-) Ймовірно, зводиться до того, яке питання потрапило в найкращі новачкові ключові слова Google.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Відповіді:


420

Вам потрібно відредагувати ім'я комп’ютера у двох файлах:

/etc/hostname 

і

/etc/hosts

Для обох потрібен адміністративний доступ, тому запустіть

gksu gedit /path/to/file

Замініть будь-які екземпляри існуючого імені комп'ютера своїм новим. При повному виконанні

sudo service hostname start

Ім'я також буде змінено, якщо ви перезавантажите комп'ютер.

Дивитися також:


43
Після цього просто sudo service hostname restartі ім’я хоста було змінено без перезавантаження.
Антоній О.

6
В Ubuntu 14.04 немає служби "ім'я хоста". Що я можу зробити там, щоб уникнути перезавантаження.
Арпад Хорват

8
sudo service hostname restartне працює за замовчуванням встановлення сервера ubuntu 14.04 на AWS. Мені довелося зробити повний перезапуск сервера
gerrytan

9
14.04 я просто побіг sudo hostname, і це зробило трюк. Я не помітив жодної негайної зміни, але коли я відкрив новий термінал, я побачив, що ім’я хоста дійсно змінилося.
TSJNachos117

8
sudo hostname new-host-nameпрацював на мене на ubuntu 13.10
Лехнат

153

hostnamectl set-hostname на робочому столі 13.10+

Це найкращий спосіб, якщо ви працювали з системою (13.10 і далі) і якщо cloud-init не активний (див. Нижче):

hostnamectl set-hostname 'new-hostname'

Це:

  • не потребує перезавантаження
  • зберігається після перезавантаження

Більше інформації за адресою: https://askubuntu.com/a/516898/52975

18.04 далі: хмара-ініт

18.04 Введено cloud-init, який може керувати налаштуванням імені хоста, щоб hostnamectlзмінити його не буде триматися після перезавантаження, якщо встановлено cloud-init. TODO: як перевірити, чи встановлений він, встановлений він за замовчуванням на зображенні робочого столу чи просто на сервері?

Якщо ви хочете, щоб hostnamectlзміни залишалися після перезавантаження, вам потрібно буде відредагувати файли конфігурації cloud-init , відключити набір / оновити модуль імені хоста cloud-init :

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

або повністю відключити хмару-init:

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

Дивіться також: Як змінити ім'я хоста без перезавантаження?


3
прекрасно працює в Ubuntu 15.10
AB

4
Не змінюється / etc / hosts в 14.04
Автододаток

7
відмінно працює в ubuntu 16.04 ... велике спасибі
Хірак

2
Підтверджено, що правильно працює в 16.10 також
fuzzygroup

2
Мені довелося додати моє нове ім’я хоста до / etc / hosts, що використовує sudo, спричинить помилку "sudo: не в змозі вирішити хост xxxxx"
WoodyDRN

70

Це досить просто:

  1. Відредагуйте /etc/hostname, внесіть зміни до імені, збережіть файл.

  2. Ви також повинні внести ті самі зміни у /etc/hostsфайл

  3. Біжи sudo service hostname start

Поки у вас немає налаштувань програми залежно від "старого" імені хоста, у вас повинно бути нормально ;-)


31
ПОПЕРЕДЖЕННЯ: Якщо ви це зробите, не змінюючи / etc / hosts відповідно, ви не зможете використовувати sudo, оскільки ваше ім'я хоста не вдасться знайти
João Pinto

Ви маєте рацію щодо редагування / etc / hosts, я забув про це (просто додав його до моєї відповіді), хоча, здається, sudo працює для мене добре, не змінюючи його (я перезапустив машину, і вона все ще працює)
Павлос Г.

1
Це нормально, ви можете зробити це так, як hostnameзараз керується сервісом upstart. Це зробить точно те саме, перезапустіть службу.
Павлос Г.

2
Примітка: це не працюватиме для ubuntu 14.x, як hostnameуже не вinit.d
Rápli András

2
Попередження: не працюватиме з Ubuntu 18+, який за замовчуванням працює cloud-init, який керує ім'ям хоста під час завантаження.
nslntmnx

24

Зробити це безпечно, вам просто потрібно бути впевненим, що ви редагуєте як файл конфігурації імені системи (/ etc / hostname), так і файл роздільної здатності імені хоста (/ etc / hosts). З терміналу виконайте наступне:

sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now

2
Ви можете уникнути відключення за допомогою sudo service hostname restart.
Wtower

3
@Wtower Не працює з 14.04. :(
дотлаш

Попередження: не працюватиме з Ubuntu 18+, який за замовчуванням працює cloud-init, який керує ім'ям хоста під час завантаження.
nslntmnx

18

Окрім редагування / etc / hosts та / etc / hostname, різні зміни можуть також мати проблеми зі зміною. Mysql та postfix встановлені за замовчуванням в ubuntu. Пошкоджений постфікс не вплине на більшість користувачів ubuntu, оскільки це фоновий сервер електронної пошти, який мало використовується.

Поштовий індекс:

sudo editor /etc/postfix/main.cf
sudo service postfix restart

Конфігурація за замовчуванням для mysql не використовує ім'я хоста, тому воно буде добре працювати як є. Якщо ви налаштували його, відредагуйте файли в / etc / mysql / та перезапустіть службу.

Ви також можете відредагувати / etc / motd (повідомлення дня), яке відображається на віртуальних терміналах та віддалених входах. Це нікому нічого не шкодить.

Інші сервіси, які, можливо, ви встановили, які потребують виправлення, - apache, bind9 тощо. У кожному випадку знайдіть і відредагуйте ім'я хоста в їх конфігурації та перезапустіть службу.


14

Ім'я хоста однозначно ідентифікує ваш комп’ютер у локальній мережі (а можливо, і в Інтернеті), тому міняти його не годиться, якщо ви не знаєте, чим займаєтесь.

Але ви можете змінити запит оболонки, щоб не відображати .belkin(частина доменного імені):

export PS1='\u@\h \w> '

Див. Сторінку bash man і, зокрема, розділ про підказку для отримання додаткової інформації.


14

Ще один кращий і безпечний спосіб перейменування імені хоста

Встановіть аїлурус

  • Додайте PPA та оновіть сховище

    sudo add-apt-repository ppa:ailurus && sudo apt-get update

  • Встановіть аїлурус

    sudo apt-get install ailurus

  • Після установки його можна знайти в розділі Програми >> Системні інструменти >> Айлурус
    alt текст

5
Чому це отримує негативні голоси? Потрібно краще налаштувати щось із виділеним інструментом, ніж знущатися в командному рядку та ламати речі в процесі.
ендоліт

38
Встановлення такого великого програмного забезпечення просто для зміни імені хоста - це трохи зайва перевага
Немо,

9
Я погоджуюся, що це надмірно - особливо тому, що програмне забезпечення не доступне у сховищах, але має бути встановлене з PPA ...
Marcel Stimberg

@ karthick87, можливо, у своїй відповіді згадуєте, що це великий програмний продукт (з іншими параметрами конфігурації)? - особисто я погоджуюся з ендолітом, що інструмент з єдиною, простою точкою зміни кращий, ніж велика кількість операцій командного рядка (я використовую Ubuntu Tweak, також доступний в даний час з PPA)
david.libremone

Я думаю, що ви можете зламати набагато більше речей (і простіше) за допомогою цього інструменту, ніж просто замінити слово в парі файлів. Це викрило для вас занадто багато речей.
gerlos

9

Якщо ви не хочете грати з текстовим редактором, Ubuntu Tweak (захопіть деб з їхнього веб-сайту) вважає, що це одна з дрібниць, з якими ви можете грати (разом із безліччю інших дрібниць, які ви хочете зробити, але не дуже хочеться грати з терміналом і самими файлами).


З цікавості, чи є якась конкретна причина, чому Ubuntu Tweak не знаходиться в репортажі програмного забезпечення?
Олів'є Лалонде

Вони ніколи не доходили до його додавання / не були прийняті. Ви можете додати їх репо до списку або відразу після початку налаштування, або через термінал / список репо.
dkuntz2

Ви також можете додати Ubuntu Tweak як PPA, sudo add-apt-repository ppa:tualatrix/ppaа sudo apt-get updateпотім sudo apt-get install ubuntu-tweak
david.libremone

1
зауважте, що з 13.04 Ubuntu Tweak більше не надає цей варіант
david.libremone

9

Використовуйте hostnameкоманду, щоб змінити ім'я хоста

sudo hostname newname

Однак це не редагує ваш файл хостів, що потрібно зробити так, щоб переконатися, що ваш комп'ютер розпізнає себе

gksudo /etc/hosts

І додайте новий запис для імені хоста, вказуючи на 127.0.0.1

127.0.0.1 oldname newname

Ви можете також видалити старий запис, але я вважаю за краще зберігати його там.


7

Наступна команда змінює ім'я хоста на льоту, але щоб зробити його постійним, потрібно відредагувати /etc/hostname:

echo 'new_hostname' > /proc/sys/kernel/hostname

Відкрийте новий термінальний сеанс, і ви побачите його відразу.

Маючи systemdна місці, це правильний спосіб зробити це

hostnamectl set-hostname "new_name"

4

Якщо ви хочете, щоб процес, що підтримує графічний інтерфейс, встановіть Ubuntu-Tweak. Серед інших застосувань цього додатка - можливість зміни імені комп'ютера через вкладку "Інформація про комп'ютер" -> "Ім'я хоста"


3

Налаштування системи -> Деталі -> Overwiev (за замовчуванням відкрито в U16.04) - Назва пристрою.

але додатково потрібно змінити ім’я в / etc / hosts. Ubuntu BUG ()?


Я думаю, що це досить приємний спосіб змінити ім'я хоста.
jawtheshark

2

Відкрийте термінал і

sudo sed -i '1s/.*/desired-name/g' /etc/hostname

# you need restart to effect with...

sudo shutdown -r 0

Попередження: не працюватиме з Ubuntu 18+, який за замовчуванням працює cloud-init, який керує ім'ям хоста під час завантаження.
nslntmnx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.