I want to change the hostname of a Ubuntu 18.04 server.

I did:

hostnamectl --set-hostname newname --static
changed /etc/hostname file to newname
changed /etc/hosts file to newname
rm -f /etc/machine-id
dbus-uuidgen --ensure=/etc/machine-id
dbus-uuidgen --ensure
dpkg-reconfigure openssh-server

Finally I did a reboot. But after reboot there is still the old hostname. The file /etc/hostname has been changed to the old hostname.

How to permanently change the hostname?

  • hi. did you try "hostname newname" as root?
    – jpbrain
    Commented Sep 15, 2021 at 1:36
  • yes, of course all commands as root Commented Sep 15, 2021 at 1:47
  • Have the same problem here, done all that and after reboot well, we were taken for a ride, because all our work wen't done the drain. Do have half an answer for you thought, the /etc/hosts file also get undone, found 23.04 is using a template located at /etc/cloud/templates/hosts.debian.tmpl. If you edit that file at least your hosts file will be configured correctly. We'll keep informing. Commented Aug 4, 2023 at 4:21

1 Answer 1


Additionally I had to change the file /etc/cloud/cloud.cfg

There is a setting preserve_hostname: false

I had to change that from false to true. After rebbot hostname had changed.

  • Thank you! Wasted hours trying to change hostname on 22.04 due to this.
    – robm
    Commented Jun 30, 2022 at 14:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .