Getting error sudo unable to resolve host name or service not known after executing the sudo command, then read these steps to fix it up.
As you know, while installing a new operating system like Debian, Ubuntu, or any other Linux distribution, installers ask you to set the hostname.
At that time, most users kept the default hostname.
But later, you decided to change the hostname to some meaningful text, which can help you identify your system easily, and to do that, you may have followed this article or directly mentioned the new hostname in the /etc/hostname file.
However, after restarting your system, when you invoke the sudo command, you encounter an error message that states “sudo: unable to resolve host your-hostname: name or service not known.”
So, let’s learn how to fix the sudo unable to resolve host name or service not known in your Linux system.
Fix: Sudo Unable to Resolve Host Name or Service Not Known Error
Once in a while, you will encounter the above error after making changes to /etc/hostname, and fixing this issue is no more complicated than a few simple steps.
First and foremost, find your current machine’s hostname, which you can do by running the following command:
$ cat /etc/hostname
Like in my case, it is “trendoceans-HUB1”.
trendoceans-HUB1
Once you know the machine-name or hostname from /etc/hostname, you can proceed to /etc/hosts to find the existence of your machine name in the respective file.
$ cat /etc/hosts
The output shows the main culprits lie here.
# Host addresses
127.0.0.1 localhost
127.0.1.1 SHEN
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
As you can see, my system hostname is trendoceans-HUB1, but here “SHEN” is still appearing, which makes a system print error about the hostname being incorrect.
Very few people know How to use cat and tac command in Linux
$ cat /etc/hostname
trendoceans-HUB1
So, simply modify the /etc/hosts with the correct hostname.
If you are not finding the hostname in the following, simply paste the highlighted line into the file by replacing it with your hostname and save the file.
$ sudo nano /etc/hosts
# Host addresses
127.0.0.1 localhost
127.0.1.1 trendoceans-HUB1
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Like here, I have replaced the old hostname with the new hostname, and now let me save and close the file. Once you’re done with the changes, you can execute the command that raised the above error.
Wrap up
That’s all for this guide to fixing the error.
Even after following these steps, if you still face the issue, then do let me know in the comment section.
As a side note, you can also use the hostenamctl command to change the hostname of your system without manually making any changes to /etc/hostname.
See you in the next article.
A man with a tech effusive who has explored some of the amazing technology stuff and is exploring more. While moving towards, I had a chance to work on Android development, Linux, AWS, and DevOps with several open-source tools.
I use a script to change hostnames that checks to ensure the new hostname is valid then changes it in both /etc/hostname and /etc/hosts. If the change isn’t successfull, it reverts back to the previous hostname.
We would love to have it
Thank you! This solved my issue!
Thanks for your feedback.
thanks a lot. my problem is solved
Thank you! A simple fix to a relatively simple problem.
It worked! Thankss a bunchh!!
Glad to hear!
Thanks so much!