from Inkstainthebat@pawb.social to selfhosted@lemmy.world on 24 Jun 13:29
https://pawb.social/post/46152060
I have a personal server I connect to through Tailscale whenever I’m not home, however I’ve found that whenever I’m connecting remotely connection speed drops drastically from 100MB/s to <3MB/s.
I expect there to be some speed loss when connecting over the internet compared to locally, but 3MB/s doesn’t make any sense especially considering that according to a python script I found that uses speedtest.net to test internet speed through a terminal, it reported 109Mbit/s download and and 76Mbit/s upload (~13MB/s; 9MB/s), which aren’t amazing but leagues beyond 2MB/s. Moreover I also did a quick test with a friend of mine briefly using port-forwarding and they reported the same speeds, which tells me it isn’t Tailscale slowing me down.
Is this just what happens when you connect over the internet? What trickery is afoot to allow me to download things from the interwebz using that sweet full 109Mbit/s bandwidth?
threaded - newest
first off, you will not get your full 109Mb as thats into your house. You should see something close to the 76Mb, as that is out of your house.
How did you test your external speed to your house and to your friends house?
If that was from your phone/laptop, that could be your phone provider capping you
.
I did expect the connection to not be as fast, was just kind of suspicious since the one I was getting was so incredibly low. My friend was connected on a desktop, through 4G/LTE, they did mention they have a 100Mbit/s down speed limit, which still doesn’t line up. My own server is plugged into street fiber-optic, but I can try testing it with another friend that has a more reliable connection too. If I do that I’ll get back with the results
Apologies for the lack of detail but I want to make sure you know about the tool traceroute. The speed at which you connect depends on every node between your remote location and home, plus there will be some overhead with whatever vpn is involved.
I’ll check it out, thanks!
Trace route measures latency, which is not directly correlated with speed.
I have a tailscale node that is 200ms away from me, but I can still hit solid speeds to it.
Yeah (fully agree) but it would point out each of the hops the user goes through before reaching home, yes? I’m just trying to help visualize where all the bottlenecks could be
Connecting remotely to your home devices is dependent on your home internet connection’s upload speed, which is usually a fraction of the download speed.
Then add the overhead of the VPN (Tailscale) and how direct of a connection it’s able to make.
Then the connection of the device you’re testing from - it may have some bandwidth limitations.
I just did a quick test - copy a specific file from a local server to my phone - just enabling Tailscale made that copy take twice as long, so it’s definitely adding significant bandwidth constraints (could be an Android limitation).
Tailscale, which is wireguard is pretty lightweight protocol wise, so the overhead is usually not significant in my experience.
However, some devices don’t accelerate the crypto well, which can dramatically reduce speeds. My pi4 definitely struggles with it.
At 3mb/s, I would question if OP is getting relay’d, or possibly hitting some pretty bad packet loss.
I would make sure you have a full connection in tailscale, not a relayed one. That will kill your speed.
Also check packet loss, if you are losing lots, tailscale seems to suffer badly.
Re: trickery, some ISPs have done sneaky shit like prioritising speedtest sites, while throttling everything else.
Yes, and I really dislike that. In my estimation, speed.cloudflare.com gives you a more comprehensive snapshot. Sites like fast.com, or you ISP’s own speed test usually concentrate on download speed and don’t actually measure under load, along with other variables.
Run
tailscale pingif it’s using a DERP relay that means you’d get abysmal speed and bandwidth. Usually this is because the NAT can’t be punched through. Try opening proper ports and/or configure a peer relayThere can be multiple things at play but one thought it’s you may be hardware constrained. This is not limited to just your server but also how you are connecting. If you are using a budget cell phone with a bunch of things installed and running it will get slower. If you use a bunch of social media apps disable them before starting a test so they are not running in the background or eating into your connection.
Another is it sounds like you are using your Tailscale connection to then reach out through your regular connection to a speedtest. So you’re using the same connection with multiple data streams at the same time. You will be limited to your slowest speed when sending data to or from a server through you tailscale connection to the internet so give up on that 109Mb/s. You also have to take into account what your connecting devices speed is, if you are on cellular with an 18Mb/s connection that is your top speed.
Finally instead of running a speed test to the internet, spin up an instance of openspeedtest on a computer that is not hosting your tailscale connection and test to there. When you are starting to setup a homelab it can be useful to have an in house speedtest anyway.
.
How are you running tailscale at home? Docker? Or natively?
The maximum internet speed you get is the speed of the slowest link in between your house, your ISP, any other network in the middle, and the ISP you are using to connect your remote device to the internet itself
On top of that, put tailscale. Assuming packets go directly between home and your remote device, then tailscale should not impact. But if the packets do go trough a tailscale server, like you have no public IP address at home, or CG-NAT, then that will be the bottleneck most probably.
Tailscale on itself isn’t a measurable overhead.
In general, for home network speed, consider your home UPLOAD speed (as that will the seen as “download” speed from outside) not the download speed, which is often many times faster.
Connecting to my N100-based box on my LAN is measurably (and noticeably) slower over tailscale than without. The encryption overhead is not nothing, and it can be meaningful depending on CPU hardware. (To be clear, not OP’s problem, just commenting on “Tailscale on itself isn’t a measurable overhead.”)
No, really, wireguard encryption overhead is negligible unless you have a really old CPU (like a Pentium100 or something).
Whatever slows down your N100 is not wireguard per se, probably some tailscale overhead going trough their servers.
I have a fairly dated rented server, with an Atom D510, 2 cores, which is 10 years old, and accessing it over wireguard or not, I can still max out the network bandwidth without any visible CPU overhead.