hostname -f says "hostname: the specified hostname is invalid". The hostname (FQDN) specified in /etc/hostname is also listed in /etc/hosts and is pingable. No actual DNS server yet of the host knows. Is this a reason of the error reported or something else? (the OS is Ubuntu 10.04 Server).
Update: registering the host at a DNS server (so that the name can be successfully resolved via Internet) did not help.
From this thread on Ubuntu Forums.
Apparently the underscore is an illegal character for hostnames. I had one in my hostname, and it gave me your failure message. Maybe you're getting something similar.
Check the configuration of:
host.conf should have "order hosts, bind" and nsswitch.conf should have "hosts: files dns" at a minimum. Possibly you've got something out of whack that's searching only DNS and not your local files?
/etc/hostname should only contain the hostname and not a full FQDN.
hostname -f
relies on DNS working.What does:
print?
You can edit your hostname at
/etc/hostname
or directly from the CLI like this:For systems that support it (such as Ubuntu 18.04+), you can also use
hostnamectl
like this:Then reboot or login/logout and you should see the latest hostname, regardless of illegal characters like underscores.