Вот шаги, за которыми я следовал:
Изменено /etc/hosts
:
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 linux-vm
Изменить etc/hostname
cat /etc/hostname
linux-vm
Перезагрузка
Тем не менее TTy показывает старое имя хоста:
Как я могу изменить это навсегда?
Много хостов виртуальной машины перезапишут Ваш/etc/hostname и/etc/hosts файл на каждую перезагрузку к тому, что настроено в их потребительской панели управления.
, Если Вы можете, настройте свое желаемое имя узла в панели управления Вашего хоста VPS.
альтернативная опция, которую многие люди используют - несмотря на то, чтобы быть определенным взломом - состоит в том, чтобы отметить эти файлы как неизменный подразумевать, что они действительно только для чтения (даже корнем).
Это атрибут файла . Файловые системы Linux позволяют много атрибутов файла, но они редко используются. Вы изменяете их с chattr
команда (короткий для "атрибутов изменения" - в противоположность chmod
для изменения полномочий или chown
для изменения владения).
Для установки файла как неизменного:
chattr +i filename
Для очистки неизменного флага:
chattr -i filename
Этот подход, как известно, работает над платформами OpenVZ, которые являются платформами, в которых, скорее всего, произойдет/etc/hosts, переписывающий проблему. Если у Вас будет виртуализация уровня машины как Xen или KVM/Qemu, это, менее вероятно, будет работать.
Я протестировал прямо сейчас меня, это - то, что я сделал кроме выполнения Ваших шагов:
sudo nano /etc/hostname
sudo nano /etc/hosts
я изменил свой хост с cyrex
до cyrex2k
и перезагрузил и добрался:
cyrex@cyrex2k:~$ hostname
cyrex2k
cyrex@cyrex2k:~$
cyrex@cyrex2k:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 cyrex2k
, Таким образом, моя рекомендация состоит в том, чтобы проверить, чтобы видеть, проверен ли IP против доменного имени, на всякий случай и также добавьте, какую виртуальную среду Вы используете. У меня были проблемы с VMware как это, таким образом, я переместился в VirtualBox и QEMU (С KVM).
Вы, возможно, также должны использовать systemd способ изменить имя хоста:
sudo hostnamectl --static set-hostname servername
Также Ubuntu включала cloud-init
в его более поздних дистрибутивах, который обеспечивает управление для установки облачных экземпляров - включая установку имени хоста - поэтому, даже когда Вы используете все вышеупомянутое для изменения имени хоста и оно все еще не придерживается после перезагрузки затем это стоит изучить, установлено ли облако-init. Если это, у Вас есть две опции - любой, который можно отключить его (после внесения изменений имени хоста как выше):
sudo touch /etc/cloud/cloud-init.disabled
Или можно создать новый пользовательский файл данных и перезагрузить конфигурацию - см. облачные-init документы для деталей.