This is an Acer Aspire one laptop, with a 32 bit CPU and Debian 12.7. Whenever I install Linux on it, the Internet works for about one day. And when I boot it up the next day, it just stops working. This is the case for WiFi, Ethernet and USB tethering via Android.
After running networkctl it gave me this:
I can ping 8.8.8.8 in this state, but not gnu.org. I can’t open websites in Firefox either.
Then I ran “sudo systemctl start systemd-networkd”. The networkctl output changed but everything worked exactly as the above two images. Couldn’t open websites still.
Yesterday everything was working perfectly
Edit: Thanks to @[email protected] and @[email protected] I finally have internet access on my 12-year old e-waste!
Why are you using networkd instead of networkmanager on a desktop? The two don’t work together.
Anyway, it looks like a DNS problem. You can manually specify DNS servers (like 8.8.8.8, 8.8.4.4) in whatever network management you’re using.
Alternatively you can edit
/etc/hosts
and then make it immutable (chattr +i /etc/hosts
) to prevent changes.Why are you using networkd instead of networkmanager on a desktop?
What a weird question. Networkd works anywhere systemd works, why whould desktops be any different.
It’s the same as asking someone “why are you using systemd-boot instead of grub?” Because I like systemd boot better and it’s easier to configure. Same with networkd, configuration is stupid simple, I have installed it on my work machine even.
As for op: since you can manually ping ip addresses and the issue seems to be time-based, could it be that your machine is somehow not renegotiating a dhcp lease?
Well the machine’s time is off by a few hours after I power it off for a night. So the time is incorrect right now. This might explain why it suddenly stops when I wake up and reopen it a day after installation. Should I manually set the correct time to fix it?
If the time is off by that much after being powered off, this tells me two things:
- Your RTC battery is very likely dead. Should be simple to replace, it would be on the motherboard but then again accessing it might be a little tricky on a laptop
- NTP is probably not set up, or set up incorrectly. It should automatically sync the time on boot
An incorrect clock can absolutely cause network issues, so I would bet that’s what is causing you trouble
Nobody asked you, you beaver’s cock.
If worse comes to worse, you can always just remove the symlink of /etc/resolv.conf which presently will point to something in /run/systemd, and replace it with a static file with known good name servers in it. You’ll lose having a DNS cache but at least your machine will function.
0 days since it was DNS
Fact that you can still ping but not resolve means your name servers aren’t set right.
What can I do to fix the problem here?
Update /etc/systemd/resolved.conf and add some DNS servers (in this example, 1.1.1.1 is CloudFlare, and 8.8.8.8 and 8.8.4.4 are Google but you can use your preferred DNS servers.)
[Resolve] DNS=1.1.1.1 8.8.8.8 FallbackDNS=8.8.4.4
Restart system resolved:
service systemd-resolved restart
Run resolvectl status (or systemd-resolve --status in older versions of systemd) to see if the settings took.
If they don’t take after a reboot, there’s something else going on.
Tysm, @[email protected] and @[email protected].
[Resolve] DNS=1.1.1.1 8.8.8.8 FallbackDNS=8.8.4.4
I added this to the file /etc/resolv.conf and it’s working again.
@maliciousonion You can go into network manager and specify different working name servers, you can cat /etc/resolv.conf to make sure it is sane.