I have no idea why this is happening on my arch linux machine. I was trying to set it up as a client device, and now i have no internet connection on my wired network. This is bare metal not docker. I just wanted to add the device to my tailnet.
Any help is appreciated
Thank you for your time.
EDIT: I have completely uninstalled tailscale yet I still do not have internet access. I am connected to the network fine. If i cinnect through wifi it is the same result.
EDIT 2: the error I am recieving is limited connectivity.
EDIT 3: It has been fixed! [email protected] solution fixed it!
It looks like you fixed your issue but I had the same thing happen on windows 10 so I am gonna post how I fixed it in case someone runs across this thread later.
In my case everything had been working previously but after an arbitrary reboot, my windows 10 PC could ping the local network and nothing else suddenly. No access to the tailnet, Internet; DNS or otherwise. On the wired interface that is. I could connect to WiFi and it would work just fine. I had a DHCP reservation set, deleted the reservation, let it get a new IP and then it worked. No idea why? Recreated the reservation and it still worked back on the old IP again
I don’t know what your previous setup was, but given that running resolved fixes your DNS issues, run:
ln -sf ../run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
This will point programs that use /etc/resolved.conf during DNS resolution to the local DNS server provided by systemd-resolved.
Then, enable resolved so that it is started when you reboot:
systemctl enable systemd-resolved.service
Finally, start the service so that it is available immediately:
systemctl start systemd-resolved.service
You will want it run those with the required permissions, e. g. via sudo.
“It’s always DNS”
This seems to have fixed it!! Thank you so much!
I don’t use arch (shocking I know), so I can’t help you directly, but I will recommend instead that you invest some effort in learning about the Linux networking stack. It’s very powerful and can be very complicated, but usually the only thing you need to do to get it working is something very simple. Basically all distributions use the Linux kernel networking stack under the hood, usually with only a few user-interface sprinkles on top. Sometimes that can get in your way, but usually it doesn’t. All the basic tools you need should be accessible through the terminal.
The most basic things you can check are
ip a
which should show a bunch of interfaces, the one you’re particularly interested in is obviously the wired interface. This will tell you if it’s considered <UP> and whether it has an “inet” address (among other things). If it doesn’t, you need to get the interface configured and brought up somehow, usually by a DHCP broadcast. Network Manager is usually responsible for this in most distributions. Arch seems to have some information here.If those things look good, next step is to look at
ip r
which will tell you the routes available. The most important one is the default route, this will tell your system where to send traffic when it isn’t local, and usually sends traffic to an internet gateway, which should’ve been provided by DHCP and is usually your router, but could also be a firewall, the internet modem itself, or something else. The route will tell it what IP the gateway has, and what interface it can be found on.Assuming that looks good, see if you can
ping
the gateway IP. If your packets aren’t getting through (and back) that suggests something is wrong on a lower level, the kernel firewall might be dropping the packets (configuring the kernel firewall is a whole topic in itself) or one of the IPs is not valid and is not registered properly on the network, or the physical (wiring) or the hardware on either end is not functioning or misconfigured.If you can ping the gateway successfully, the next step is to see if you can ping the internet itself by IP.
ping 8.8.8.8
will reach out to one of Google’s DNS servers which is what I usually use as a quick test. If you get no response then it’s either not forwarding your traffic out to the internet, or the internet is not able to get responses back to it, and ultimately back to you. Or Google is down, but that’s not very likely.If you’ve gotten this far and 8.8.8.8 is responding to you, then congratulations, you HAVE internet access! What you might NOT have is DNS service, which is what translates names into IP addresses. A quick test for DNS is simply to
ping google.com
and like before, if that fails either your DNS is broken or Google is down, which is still not very likely.Hopefully this will help you at least start to find out where things are going wrong. From there, hopefully you can at least steer your investigation in the right direction. Good luck!
I’ve had similar problems in the past - apparently no internet connection, and both times I narrowed it down to the machine being unable to resolve domain names.
Turns out Tailscale had changed the IP address for the machines’ DNS resolution in resolv.conf to 100.100.100.100
That’s fine when the machine is connected to Tailscale but not when it isn’t!
Reverting the DNS IP back to whatever it was previously, or to something like 1.1.1.1 solved the problem for me, at least to the extent that it could resolve URLs again.
Worth a look, if only to rule it out…?
resolv.conf is usually set by systemd network manager. You should change the setting in /etc/systemd/… (Idk I forgot the full path)
I try to nano into my resolv.conf but it appears to only be a symbolic link file. I apologize for my ignorance but is there any other way to revert my dns back?
EDIT: the symbolic link leads to a directory that does not exist:
/run/systemd/resolve/stub-resolv.conf
What’s the output of
systemctl status systemd-resolved
○ systemd-resolved.service - Network Name Resolution Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; disabled; preset: enabled) Active: inactive (dead) Docs: man:systemd-resolved.service(8) man:org.freedesktop.resolve1(5) https://systemd.io/WRITING_NETWORK_CONFIGURATION_MANAGERS https://systemd.io/WRITING_RESOLVER_CLIENTS
Have you tried deleting
/etc/systemd/resolved.conf
and restarting the service withsystemctl restart systemd-resolved
?Ok wtf. I retried this solution and it worked for some reason. I have no idea what happened differently. I didn’t delete the file because it was already gone.
However if I restart it breaks again.
I found an informative post about a related issue that might be of some use to you. Sounds like DHCP or Network Manager may be rewriting your systems-resolved.conf.
That did not work, I deleted the file and then I restarted the service. I then restarted the pc just to make sure. Still no internet access and still same limited connectivity error.
What’s the config file look like?
None of those config files exist in that folder location.
Does
ping 1.1.1.1
work?Yes it does
Did you undo the reverse path strict filtering your guide suggested?
net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1
Above is what the guide suggests to force reverse path strict filtering. Try setting as shown below:
net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0
According to the guide, “By default, these are set in
/usr/lib/sysctl.d/50-default.conf
”No I did not edit this at all. Bkth were set to the value ‘2’
I changed them both to 0 and 1 and it did not fix my issue 🫤
Hold up. Dont change stuff in /usr/lib/. That directory contains default settings that comes with packages. If you need to overwrite those settings use /etc for that.
What do you mean by not working? What part of the network stack is the problem? Can you ping any IP addresses? Start with a local device and then move to public IPs. If that works check DNS.
Edit: it sounds like DNS is borked. What happens if you do a full restart?
I can ping 1.1.1.1 and localhost but pinging google.com comes up with “temporary failure in name resolution”
I was able to get internet working by running the cimmand suggested by badlotus (I had already deleted the file they told me to the first time and then run the cimmand. So i didn’t delete it again because it was gone.) When I run that command my internet cimes back. However if I restart the issue comes back.
Let us know the following
If ping works for: localhost, your gateway, 1.1.1.1, google.com.
The contents of your /etc/resolve.conf
If you have a tun0 interface (ifconfig or
ip a
)You said you uninstalled tailscale. Are there any running process or active systemd units laying around?
So I was able to get it working again by doing this solution that badlotus suggested. I did not delete the file because it was already gone after the first timw I attempted this. If I reboot my device however the issue comes back. If I run the command again my internet is back.
Badlotus’ solution:
“Have you tried deleting
/etc/systemd/resolved.conf
and restarting the service withsystemctl restart systemd-resolved
?”Good that it’s working (kinda).
So it sounds like your DNS resolver is botched. Id dig into the doc on how systemd-resolverd should look and see if you can’t rectify what went wrong (the arch wiki should have examples of what a default config looks like).
I don’t remember if arch uses cloud init configs but it being reset at boot feels like a cloud init config problem.
It would help if you could recall what steps you did, a link to the instructions you followed, and what you’re currently observing. Otherwise, we’re all just guessing at what might be amiss.
This is the guide I followed:
https://tailscale.com/kb/1036/install-arch
I then restarted because I was getting several errors when trying to use the tailscale up command.
After thay restart I was able to get tailscale up to work but that is when the issue with limited connectivity arose.
Did you insert the sysctl values and reboot?
I did and thay did not change anything.
As of right now I have tailscale uninstalled so I will reinstall it and try the values again.
EDIT: lol I forgot I do not have internet I cannot reinstall tailscale
EDIT 2: Pinging 1.1.1.1 works
Well only your DNS is broken, so that’s all that needs to get fixed. Are you POSITIVE you’re using systemd resolve and not networkmanager?
Yeah I am positive I am running systemd
What’s happening in
journalctl -u systemd-resolved
?– Boot b3a9a949f8d1499fb0404672a02d2e34 – Mar 11 21:04:21 arch systemd[1]: Starting Network Name Resolution… Mar 11 21:04:21 arch systemd-resolved[1296]: Positive Trust Anchors: Mar 11 21:04:21 arch systemd-resolved[1296]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d Mar 11 21:04:21 arch systemd-resolved[1296]: . IN DS 38696 8 2 683d2d0acb8c9b712a1948b27f741219298d0a450d612c483af444a4c0fb2b16 Mar 11 21:04:21 arch systemd-resolved[1296]: Negative trust anchors: home.arpa 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 20.172.in-addr.arpa 21.172.in-addr.arpa 22.172.in-addr.arpa 23.172.in-addr.arpa 24.172.in-addr.arpa 25.172.in-addr.arpa 26.172.in-addr.a rpa 27.172.in-addr.arpa 28.172.in-addr.arpa 29.172.in-addr.arpa 30.172.in-addr.arpa 31.172.in-addr.arpa 170.0.0.192.in-addr.arpa 171.0.0.192.in-addr.arpa 168.192.in-addr.arpa d.f.ip6.arpa ipv4only.arpa resolver.arpa corp home internal intranet lan local private test Mar 11 21:04:21 arch systemd-resolved[1296]: Using system hostname ‘arch’. Mar 11 21:04:21 arch systemd-resolved[1296]: mDNS-IPv4: There appears to be another mDNS responder running, or previously systemd-resolved crashed with some outstanding transfers. Mar 11 21:04:21 masonarch systemd-resolved[1296]: mDNS-IPv6: There appears to be another mDNS responder running, or previously systemd-resolved crashed with some outstanding transfers.