Plex client remote access issue with Tailscale

I’m having an issue using Plex remotely. My Plex Media Server is installed on my Mac mini M4, and everything works perfectly on local devices (Apple TV, iPad, and iPhone apps connected to the same Wi-Fi network as the server).

Unfortunately, I can’t access my media library remotely. The Plex Media Server is not available outside my local network due to my ISP’s configuration. I’ve already contacted them, and they informed me that they’re unable to make any changes due to their network structure. I appear to be behind triple NAT (or something even more restrictive), and there’s no option to obtain a static IP.

I’ve resolved the issue partially using Tailscale. With this setup, I can access my media library through the Plex web UI (in a browser), but when I try to use the Plex client on Apple TV, iPad, or iPhone, I have no access to my media library at all.

Could you kindly help me resolve this issue?

My current setup:

Home Router:

  1. Static IPs assigned to all devices that may use Plex
  2. Port forwarding configured

Tailscale:

  1. All devices have static IPs within the same Tailscale subnet

Plex Media Server:

  1. Subscription: Monthly Plex Pass
  2. Version: 1.41.9.9917
  3. Remote Access: Disabled (doesn’t work anyway)
  4. Client network support: IPv4 and IPv6
  5. Secure connections: Preferred
  6. Preferred network interface: Any
  7. Strict TLS configuration: Disabled
  8. Enable local network discovery (GDM): Enabled
  9. LAN Networks: 100.x.x.x/24,192.168.x.x/24
  10. Treat WAN IP as LAN bandwidth: Enabled
  11. Enable Relay: Enabled
  12. Custom server access URLs: http://100.x.x.x,http://192.168.x.x
  13. List of IP addresses and networks allowed without auth: 192.168.x.x/24,100.x.x.x/24
  14. Webhooks: Enabled

Server Version#: 1.41.9.9917
Player Version#: 2025.19.0 (1132)

Same issue here! I can get the library on my tablet and mobile to load only sometimes. When I using the web app it always loads using tailscale. It seems to be picky about when it decides the load the library in the mobile apps.

same here.

working through logs it shows: After buffering, it gets Error Domain=ExperimentalPlayerErrorDomain Code=2 "Error opening input."

I’m having the same issue. While on cellular, I can access my Plex server from a browser using the Tailscale IP and port 32400. But in the Plax Android App, it does not work, even with “Enable manual connections” turned on and the IP and port set to the same values as I use in the Browser. It’s almost like the app isn’t paying attention to the Manual Connections at all. And in fact, while on my local network, if I change the Manual Connection IP to a random IP address, Plex still works fine, which makes me think that Plex is just ignoring this setting completely.

Plex for Android version 10.24.1.2319

1 Like

Ah ok, after adding my server’s Tailscale IP address to “Custom server access url” in Plex Network settings, it now works. (It still seems like the Manual Connections isn’t working at all though, unless its purpose is not what I would expect.)

Example:
https://100.123.123.123:32400

I noticed this today too after the plex client on ios updated it wont find the server anymore.

This was working fine before with custom urls.
Using the web it works fine.
Must be a bug that was introduced with last update.

Another strategy for using Tailscale with Plex for remote access (and the one I currently use) is to enable subnet routes on a Tailscale machine on your LAN. I do this because I have multiple Plex servers on my LAN and it was just easier to enable a subnet route that covered the LAN rather than configure each individually.

It has the benefit that traffic from the client to the server will always appear to be local, even without adding 100.64.0.0/10 to Settings → Network → LAN Networks. It’s also convenient in that it’s less dependent on Plex client/server configuration.

The disadvantages are that it requires a bit more configuration in Tailscale (only a bit more) and that the Plex server will always see the connection as coming from the machine advertising the route (though that can be mitigated).

Here’s a Tailscale video describing subnet routes and how to configure/use them:

Perhaps it was just a typo, but the entry for the Tailscale subnet should be: 100.64.0.0/10.

I use the subnet routing and use the dns to point the custom url to the right location but this is broken now and worked perfectly.

Only thing i can think of is that the plex app is using its own dns now or something is broken with the custom urls.

No. Just no. I tested this before my post. If you use subnet routes correctly, custom urls are not needed.

Don’t just read suggestions and reply back “I’ve tried that.” Actually try them.

If you set it up correctly, it will work. Plex cannot detect whether or not you’re remote or on the local subnet. If it doesn’t work, you’ve not configured something correctly. Figure it out.


I’m sorry to pick on this post, but I genuinely don’t understand why some folks won’t heed the advice given on these forums. They come here seeking answers, but when suggestions are provided with “oh, yeah, I’ve obviously already tried that.”

Just detail what you’ve tried and what the results were. Particularly when you’re working with a third-party unsupported configuration, it could be helpful.

“It’s broken” is never helpful, in a vacuum.

Do better.

1 Like

Well your setup is a bit different then mine but if the only thing that changes is the client or server updates then something got broken along the way in that area.

I run tailscale outside of my plex server in a different subnet/vlan.

The dns resolves fine the web part is working fine just the plex app doesn’t see it anymore.
Even plexdash works fine over the same tunnel.

Switched to Infuse and worked straightaway.
Hope they fix it soon but luckily there is workaround.

Found what the problem is on IOS.
When you don’t allow plex to scan for network devices which I had disabled when installing and worked before the plex app doesn’t see the library anymore. I’ve enabled that and now it’s seems to work fine again over subnet routing with tailscale.

I think I’m running into the same problem:

Let me add one thing before I proceed with the details of my tests with Linux plex client, iOS, android and web. Plexamp is working, but its the Plex app that isn’t. So if this were some sort of network issue or server configuration issue, you’d think plexamp would fail. The Custom server access URL is an http address, so no TLS problems to deal with.

When on the same network as the Plex server, my iPhone accessed it (my server libraries) without any issues. However, while on cellular with Tailscale, the iPhone Plex client reported it couldn’t access libraries or reach the server. Interestingly, I could still access the Plex web interface without any problems even on cellular.

I then tethered an iPad that also had the Plex client installed. I confirmed I could reach the server via the web without issues, but once again the client reported it couldn’t access my libraries because it couldn’t reach the server.

Next, I tethered a Linux laptop with Tailscale and ran the Linux Plex app. Over Tailscale, it detected the server successfully and I was able to access both the server and all libraries.

That’s two failures on iOS clients and one success from a laptop, all with no changes to the server. The server is set up with the custom server access URL set to the tailscale FQDN for the server (plex docker with the container using host for network mode), relay turned off, and remote access disabled so that Tailscale is the only way to access it.

I uninstalled and reinstalled the iOS Plex app on the iPhone with no success. I also rebooted the phone, but that didn’t help either.

Tried on Android and got the same problem. I can access it via the web, but launching the app and using Tailscale fails when I try to access my libraries. Weird.

I think I’ve covered all the variables. Since this works on a laptop with Tailscale using the Plex desktop app, and I can access the Plex server via the web, it looks like there is something related to the way the iOS and Android clients get the Custom server access URLs from the field in the prefs. Its going up to plex, or otherwise the Laptop and plexamp wouldn’t have known where to go when I launched the app from there.

Not sure where to proceed from here.

Why are you using a custom server URL address? That’s not needed. Just use subnet routing in Tailscale. Pick a node on your local network as the subnet router, configure it, and then use it on the client.

The plex server is shared out as an individual node on my tailnet to other users with independent tailnets of their own.

You can’t do subnet routing to shared users.

Huh? You didn’t mention anything about shared users in your initial post. You don’t need to do anything particularly special but to follow the advice in the video I linked. And maybe add the 100.64.0.0/10 address range to your Settings -> [Select Server] -> Network -> LAN Networks settings so that it can be seen as local. Otherwise, there’s nothing particularly special about your configuration. They do need to be on your Tailnet or it obviously will not work.

And, by the way, Plex isn’t beholden to Tailscale, or any other “VPN” provider’s vagaries. Learn to fish, my friend. And take advice when it is offered rather than dismissing it out of hand.

[Edit]
And why don’t you understand all this? You’re using Tailscale FFS. All this should be very, very clear. Why are you pouncing on the Plex forums like they’re somehow to blame? Just learn networking. And VPNs. And then overlay networks. And then Tailscale. And then question if Plex is causing a Problem (hint, it isn’t, I use it off-network via Tailscale, daily).

I’m sorry if I seem harsh. But there are some things you blame on yourself and some on the product. Clearly this is one you should blame on yourself.

1 Like

I’m sorry if I seem harsh. But there are some things you blame on yourself and some on the product. Clearly this is one you should blame on yourself.

I appreciate the suggestion on subnet routing but that doesn’t work for my situation. I think there may be some confusion about the two different methods Tailscale offers for providing access, and why subnet routing won’t work for my specific situation.

Tailscale has two distinct approaches for sharing access:

  1. Inviting users to your tailnet – These users become members of your tailnet and can access the subnet using subnet routing.

  2. Sharing individual nodes to users on other tailnets – These users only see the specific shared machine and cannot access the subnet using subnet routing.

You’re suggesting that I invite users to my tailnet (option 1) so they can utilize subnet routing. While that would technically work, it has major limitations in my use case:

  • The free Personal plan limits tailnets to a maximum of 3 invited users. I have more users that (my family far away).

  • Invited users become members of my entire tailnet, not just the Plex server.

My current setup uses node sharing (option 2), where the Plex server itself is shared as an individual node to users on completely separate tailnets. That method cannot use subnet routing by design, it’s a documented Tailscale limitation.

According to Tailscale’s official documentation, “Shared machines do not advertise subnets to the tailnets they’re shared into”. When you share a device across tailnets, only the shared node itself becomes reachable; none of the subnet routes advertised by that node propagate to the remote tailnet.

PlexAmp is already working perfectly with my current custom server URL configuration. This points to the fact that my Plex server side configuration is correct according to Plex’s documentation. The fact that PlexAmp works while the Plex clients do not seems to indicate a client side issue, or possibly a bug, in how those apps handle custom server URLs. I’m not being critical, I’m pointing out a possible bug.

My original question was about how Plex’s remote access detection behaves with Tailscale in this configuration, and about an issue I’m describing where iOS clients (and now Android since I’ve tested that too) are not respecting the “Custom server access URL” option in the Plex settings.

I’m not dismissing your advice about subnet routing, it’s an excellent method when users share a tailnet. I’ve used it myself to share a remote antenna setup using plex’s DVR feature to my subnet. It’s just not applicable for cross tailnet node sharing, which is what I’m doing here.

Edit: You really should refrain from the personal criticisms. It doesn’t add nor improve the conversation.

Noted, and I apologize.

I’m facing the exact same issue. Somewhere between September 5th (the last time I remember testing that) and today something broke. I can access Plex remotely from the browser (via Tailscale IP) just fine, but iOS doesn’t work remotely. @Danathar any chance you found a fix for this? Plex removed the manual connection setting so that’s out of the window too…