Although I've never had problem with my other x86_64 PC all running Arch Linux, this frequently happens till date with Arch Linux ARM when running NetworkManager.
The problem is like you are connected to wifi, but you can't ping or use the internet but you can access all the computers on the local network, and even use remote desktop sharing software.
There is a high chance that something went wrong while your ping or your browser tries to resolve the host. I can think of 3 solutions:
Solution 1
I believe this is a problem on the thousands of the Raspberry Pi systems running Archlinux ARM and using NetworkManger.
In my case /etc/resolv.conf was a broken symlink to ../run/systemd/resolve/stub-resolv.conf
.
NetworkManager can't populate the symlink, and the /etc/resolv.conf is empty. We have to:
- Remove the broken symlink:
# rm /etc/resolv.conf
- Create an
/etc/NetworkManager/conf.d/dns.conf
file with the contents:
[main]
dns=none
main.systemd-resolved=false
- Restart NetworkManager:
sudo systemctl restart NetworkManager
This should fix the issue, if not follow Solution 2.
Solution 2
In case the above didn't fix the issue for you, you can temporarily populate /etc/resolv.conf by:
sudo systemctl restart systemd-resolved && sudo systemctl stop systemd-resolved
The reason this works is because probably something is messing up the /etc/resolv.conf
file. The above command should overwrite the contents, but again, you should look at what causing the issue.
Solution 3
If you can't get your /etc/resolv.conf
back, just create a new /etc/resolv.conf
(delete if an empty old one or symbolic link exists) and paste the code:
search domain.name
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 1.0.0.1
Note, in the first line, you can also use your router's IP address, for example (nameserver 192.168.43.1
in my case) which will make other systems pingable on the same network. It's not a good idea to generate resolv like this, but I had a bad time with the NetworkManager's auto-generated resolv. Systemd-resolvd also generates wrong ones, even on my PC.
A bit weird, here I am using google's primary dns and cloudflare's primary dns, you can use 8.8.8.8 with 8.8.4.4 or 1.1.1.1 with 1.0.0.1.
Although that step works, but you may want to stop NetworkManager from overwriting the file whenever it restarts:
Add this entry to /etc/NetworkManager/NetworkManager.conf
[main]
dns=none
systemd-resolved=false
They worked for my installations on Raspberry Pi 3 model B. Hope this will work for you, too.
nc -z 10.230.252.252 53
)? Same two questions for the other IP addresses.telnet
? You can use that as an alternative tonc
.