Info
Content

Linux hostname (как правильно изменить)

Чтобы было так

root@anxiety:~# hostname
anxiety
root@anxiety:~# hostname -f
anxiety.vandud.ru

Нужно сделать так

root@anxiety:~# cat /etc/hostname
anxiety
root@anxiety:~# cat /etc/hosts
127.0.0.1	localhost
127.0.0.1	anxiety.vandud.ru	anxiety
...

При загрузке системы из файла /etc/hostname хостнейм положится в /proc/sys/kernel/hostname
Дальше утилиты типа hostname используют именно имя из /proc

root@anxiety:~# hostname test
root@anxiety:~# cat /proc/sys/kernel/hostname
test
root@anxiety:~# hostname
test

А hostname -f берет инфу из файла /etc/hosts
Он находит в файле /etc/hosts подходящую строку и берет из нее первый хостнейм

root@anxiety:~# hostname
test
root@anxiety:~# hostname -f
testtesttest
root@anxiety:~# cat /etc/hosts
127.0.0.1	localhost
127.0.0.1	testtesttest	anxiety.vandud.ru	anxiety	test
...

В примере выше он нашел последнее имя test и как полное имя взял первое testtesttest


Кстати hostnamectl покажет какое имя статическое, а какое временное

root@anxiety:~# hostnamectl
   Static hostname: anxiety
Transient hostname: test
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ec697124f3421da2bd81ecfae2cab1fc
           Boot ID: f47d3ce45e3642c3a30e2ca26902264a
    Virtualization: kvm
  Operating System: Debian GNU/Linux 11 (bullseye)
            Kernel: Linux 5.10.0-20-amd64
      Architecture: x86-64

Можно сделать и так

root@anxiety:~# echo 'vandud' > /proc/sys/kernel/hostname
root@anxiety:~# hostname
vandud
No Comments
Back to top