How to Resolve “Temporary failure in name resolution” Issue
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
The /etc/resolv.conf
file is the resolver configuration file in Linux systems. It contains the DNS entries that help your Linux system 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 or open the /etc/resolv.conf
file in a text editor with root privileges.
$ sudo nano /etc/resolv.conf OR $ sudo vim /etc/resolv.conf
Next, add Google’s public DNS servers with the nameserver keyword followed by the IP address of the DNS server.
nameserver 8.8.8.8 nameserver 8.8.4.4
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.
$ ping google.com
After confirming your network connection, make sure to edit the /etc/resolv.conf
file to prevent it from being overwritten by network management tools.
To do this, you can create a symbolic link to /dev/null:
$ sudo ln -sf /dev/null /etc/resolv.conf
Note: Some Linux distributions, especially those using NetworkManager, may automatically manage the /etc/resolv.conf
file. If that’s the case, manually editing the file might not have a lasting effect.
Instead, you may need to configure DNS settings through the appropriate network management tool or configuration files for your specific distribution. Be sure to consult your distribution’s documentation or support resources for the recommended method of configuring DNS in such cases.
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:
Open DNS Ports on UFW Firewall
On Debian-based distributions, you need to open ports 53 & 43 on the UFW firewall by running the commands below:
$ sudo ufw allow 53/tcp $ sudo ufw allow 43/tcp $ sudo ufw reload
Open DNS Ports on FirewallD Firewall
On RHEL-based distributions, you need to open ports 53 & 43 on the Firewalld firewall by running 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.