Sometimes when you try to ping a website, update a system or perform any task that requires an active internet connection, you may get the error message ‘temporary failure in name resolution’ on your terminal.
For example, when you try to ping a website, you might bump into the error shown:
[email protected]:~$ ping google.com ping: tecmint.com: Temporary failure in name resolution
This is usually a name resolution error and shows that your DNS server cannot resolve the domain names into their respective IP addresses. This can present a grave challenge as you will not be able to update, upgrade, or even install any software packages on your Linux system.
In this article, we will look at some of the causes of the ‘temporary failure in name resolution‘ error and solutions to this issue.
1. Missing or Wrongly Configured resolv.conf File
/etc/resolv.conf file is the resolver configuration file in Linux systems. It contains the DNS entries that help your Linux system to resolve domain names into IP addresses.
If this file is not present or is there but you are still having the name resolution error, create one and append the Google public DNS server as shown
Save the changes and restart the systemd-resolved service as shown.
$ sudo systemctl restart systemd-resolved.service
It’s also prudent to check the status of the resolver and ensure that it is active and running as expected:
$ sudo systemctl status systemd-resolved.service
Then try pinging any website and the issue should be sorted out.
[email protected]:~$ ping google.com
2. Firewall Restrictions
If the first solution did not work for you, firewall restrictions could be preventing you from successfully performing DNS queries. Check your firewall and confirm if port 53 (used for DNS – Domain Name Resolution ) and port 43 (used for whois lookup) are open. If the ports are blocked, open them as follows:
For UFW firewall (Ubuntu / Debian and Mint)
To open ports 53 & 43 on the UFW firewall run the commands below:
$ sudo ufw allow 53/tcp $ sudo ufw allow 43/tcp $ sudo ufw reload
For firewalld (RHEL / CentOS / Fedora)
For Redhat based systems such as CentOS, invoke the commands below:
$ sudo firewall-cmd --add-port=53/tcp --permanent $ sudo firewall-cmd --add-port=43/tcp --permanent $ sudo firewall-cmd --reload
It’s our hope that you now have an idea about the ‘temporary failure in name resolution‘ error and how you can go about fixing it in a few simple steps. As always, your feedback is much appreciated.
5 thoughts on “How to Resolve “Temporary failure in name resolution” Issue”
Please note that by default DNS uses the UDP protocol, so you need to open port 53/udp first of all.
The advice about editing /etc/resolv.conf is fairly wrong for Ubuntu since maybe 16.04 or earlier. systemd-resolved takes over and will overwrite your changes.
You can either edit /etc/systemd/resolved.conf to include a [Resolve] section that contains, for example, DNS=18.104.22.168 and FallbackDNS=22.214.171.124 entries; or as I do, completely remove systemd-resolved, because I don’t find it to do anything more useful than the C library name resolution system, and it is definitely more complicated and failure-prone.
I still haven’t got the solution, as it is saying ufw not found.
Like ufw firewall isn’t on my computer.
What to do now someone please help.
The best answer is provided here: https://unix.stackexchange.com/questions/588658/override-ubuntu-20-04-dns-using-systemd-resolved
I am running Linux mint 19 with all current updates as of March 6, 2021. The file /etc/resolv.conf is a link to the same file name in /run/resolvconf.
That file says in all caps on a comment line: Do not edit this file by hand – – your changes will be overwritten
What now for resolving the problem?
I did this again because I do not know if I succeeded the first time in posting this.