14 min read

Access Your Plex Media Server Remotely

Accessing your Plex Media Server remotely can be a bit complex, but with a service like Localtonet, the process becomes easier. Here's a step-by-step guide for setting up remote access to your Plex server using Localtonet on different operating systems.

Plex · Remote Access · 2026

How to Access Your Plex Media Server Remotely with Localtonet

Localtonet gives your Plex Media Server a secure public HTTPS URL so you can stream from anywhere, without port forwarding, a static IP, or router changes. This guide covers the 2025 Plex subscription change you need to know about, a full setup guide for Windows, Linux, macOS, and Docker, how to keep the tunnel running automatically after a reboot, and answers to the most common Plex remote access questions.

📖 15 min read 💻 Windows · Linux · macOS · Docker 🔄 Updated 2026
Plex changed its remote access policy in April 2025

As of April 29, 2025, Plex requires a paid subscription to stream personal video content remotely. The Remote Watch Pass costs $1.99/month per viewer and is the lowest-cost option for remote streaming. The Plex Pass costs $6.99/month (or $69.99/year) and unlocks the full Plex feature set for the server admin. Music via Plexamp and photos remain free without a subscription. A Localtonet tunnel provides the connection quality. The subscription requirement is enforced by Plex's own apps separately.

Why Use a Tunnel Instead of Plex Built-in Remote Access?

Plex includes a built-in remote access feature, but it depends on opening port 32400 on your router and having a reachable public IP address. Many home and mobile networks block this entirely.

When Plex cannot establish a direct connection, it falls back to Relay mode. Relay routes your stream through Plex's own servers and caps the speed at 2 Mbps. That cap makes 1080p unwatchable and 4K impossible. High-bitrate content gets transcoded down, causing quality loss even before buffering starts.

A Localtonet tunnel bypasses all of this. It creates an outbound encrypted connection from your machine to Localtonet's servers, so no inbound ports ever need to be open. The result is a stable, uncapped, direct connection from any device to your Plex library.

With Localtonet Tunnel
  • Works behind NAT, double NAT, and CGNAT
  • No router or firewall changes needed
  • No dynamic IP problems
  • No 2 Mbps Relay cap
  • Port 32400 never exposed publicly
  • Automatic HTTPS on the public URL
Plex Built-in Remote Access
  • Requires router port forwarding
  • Fails behind CGNAT (common on mobile ISPs)
  • Falls back to Relay at 2 Mbps when direct fails
  • Dynamic IP changes break the connection
  • Exposes port 32400 on your public IP
32400 Default Plex port
2 Mbps Plex Relay speed cap
0 Router changes needed
HTTPS Auto TLS on all tunnels

How Localtonet Works with Plex

Plex Media Server runs on your local machine on port 32400. Localtonet creates an encrypted HTTP tunnel from that port to a public HTTPS URL. When you or another user opens that URL, the request travels through the tunnel to your Plex server and back. Your machine never needs an open inbound port.

1

Install and authenticate Localtonet on your machine

Follow the OS-specific installation steps below. Authenticate using your AuthToken from Dashboard → My Tokens.

2

Create an HTTP tunnel for port 32400

Go to localtonet.com/tunnel/http. Select your Process Type, AuthToken, and a server. Enter IP 127.0.0.1 and port 32400. Click Create.

3

Start the tunnel

Press Start in the tunnel list. Your public HTTPS URL appears immediately (e.g., https://abc123.localto.net).

4

Open Plex via the tunnel URL

Open https://your-tunnel-url.localto.net/web in any browser. Sign in to your Plex account. Your library loads directly through the tunnel.

Use a Custom Subdomain for a permanent Plex URL

When creating the tunnel, select Custom Subdomain and enter something like myplex. Your URL will always be https://myplex.localto.net across restarts. You can also connect your own domain via the Localtonet DNS Manager by pointing your nameservers to ns1.localtonet.com and ns2.localtonet.com.

Setup Guide: Windows

Plex + Localtonet on Windows

Windows Microsoft Store Binaries
1

Confirm Plex is running

Check your system tray for the Plex icon, or open http://localhost:32400/web in your browser to confirm the server is active.

2

Install Localtonet

Two options are available. Option A (Microsoft Store): Search for Localtonet in the Microsoft Store and install it directly. Option B (Binary): Download the correct ZIP for your architecture from localtonet.com/download (64-bit, 32-bit, or ARM64). Extract to a folder such as C:\Localtonet.

3

Authenticate with your AuthToken

Open Command Prompt or PowerShell in the Localtonet folder and run:

localtonet --authtoken YOUR_TOKEN_HERE

The token is stored locally after the first run. Copy your token from Dashboard → My Tokens.

4

Create and start the HTTP tunnel

Go to localtonet.com/tunnel/http. Select your AuthToken, choose a server, enter IP 127.0.0.1 and port 32400. Click Create, then Start.

5

Optional: Run as a Windows Service for always-on access

Open Command Prompt or PowerShell as Administrator and run:

localtonet --install-service --authtoken YOUR_TOKEN_HERE
localtonet --start-service --authtoken YOUR_TOKEN_HERE

To verify: open services.msc and confirm Localtonet shows Status = Running. To stop or remove: use --stop-service or --remove-service with your token.

Setup Guide: Linux

Plex + Localtonet on Linux

Linux Install Script systemd
1

Confirm Plex is running

sudo systemctl status plexmediaserver

You should see active (running). If not: sudo systemctl start plexmediaserver

2

Install Localtonet (one-line install script)

curl -fsSL https://localtonet.com/install.sh | sh

This script auto-detects your CPU architecture and installs the correct binary to /usr/local/bin/localtonet. It may ask for sudo to write to system directories. Verify: localtonet --version

3

Authenticate

localtonet --authtoken YOUR_TOKEN_HERE

The token is stored locally and can be rotated or revoked anytime from the dashboard.

4

Create the HTTP tunnel from the dashboard

Go to localtonet.com/tunnel/http. Select your AuthToken, choose a server, enter IP 127.0.0.1 and port 32400. Click Create, then Start.

5

Install as a systemd service for always-on access

sudo localtonet --install-service --authtoken YOUR_TOKEN_HERE
sudo localtonet --start-service --authtoken YOUR_TOKEN_HERE

Verify the service is running:

systemctl status localtonet

To stop or remove: use --stop-service or --remove-service with your token.

ARM and MUSL variants available

The install script handles architecture detection automatically. If you prefer manual installation, download the correct binary from localtonet.com/download: Linux x64, ARM, ARM64, MUSL x64, MUSL ARM, or MUSL ARM64 for Alpine and other musl-based distributions.

Setup Guide: macOS

Plex + Localtonet on macOS

macOS Homebrew Apple Silicon
1

Confirm Plex is running

Check the Plex icon in your menu bar, or open http://localhost:32400/web in Safari to confirm.

2

Install Localtonet via Homebrew (recommended)

brew tap localtonet/tap
brew install localtonet
localtonet --version

No manual download or permission changes needed. Works on both Intel and Apple Silicon (M1/M2/M3) Macs. If you do not have Homebrew, install it first from brew.sh.

3

Alternative: Manual binary install

If you prefer not to use Homebrew, download the binary from localtonet.com/download. Choose macOS 64-bit (Intel) or macOS ARM64 (Apple Silicon). Extract and make it executable:

unzip localtonet-osx.zip
chmod +x ./localtonet

If macOS blocks execution with a Gatekeeper warning, go to System Settings → Privacy & Security and click Allow Anyway.

4

Authenticate

localtonet --authtoken YOUR_TOKEN_HERE
5

Create the HTTP tunnel from the dashboard

Go to localtonet.com/tunnel/http. Select your AuthToken, enter IP 127.0.0.1 and port 32400. Click Create, then Start.

6

Install as a launchd service for always-on access

sudo localtonet --install-service --authtoken YOUR_TOKEN_HERE
sudo localtonet --start-service --authtoken YOUR_TOKEN_HERE

Verify: launchctl list | grep localtonet

Setup Guide: Docker

Plex + Localtonet on Docker

Docker Container

If you run Plex in a Docker container, Localtonet has an official Docker image. Run both containers on the same host and point the Localtonet container at the Plex container's port.

1

Confirm your Plex container is running

docker ps | grep plex
2

Pull the Localtonet image

docker pull localtonet/localtonet
3

Run with your AuthToken

docker run localtonet/localtonet --authtoken YOUR_TOKEN_HERE
4

Create the HTTP tunnel from the dashboard

Go to localtonet.com/tunnel/http. Select your AuthToken, enter the correct IP and port 32400. Click Create, then Start.

Docker networking: which IP to use

If Plex and Localtonet run in separate containers, 127.0.0.1 will not reach the Plex container. Use host.docker.internal on Docker Desktop for Windows and macOS. On Linux, use the Docker bridge IP (typically 172.17.0.1) or run both containers with --network=host.

Running Localtonet Automatically After Reboot

A Plex tunnel is only useful if it stays active. Localtonet has a built-in service mode that installs it as a system service on Windows (Windows Service), Linux (systemd unit), and macOS (launchd job) using the same commands across all platforms.

Service Commands (Windows, Linux, macOS)

systemd launchd Windows Service
1

Install the service

sudo localtonet --install-service --authtoken YOUR_TOKEN_HERE

On Windows, run as Administrator (no sudo needed). This registers Localtonet as a system-level background service.

2

Start the service

sudo localtonet --start-service --authtoken YOUR_TOKEN_HERE
3

Check service status

sudo localtonet --status-service --authtoken YOUR_TOKEN_HERE

Or use OS-level tools: services.msc (Windows), systemctl status localtonet (Linux), launchctl list | grep localtonet (macOS).

4

Stop or remove the service

sudo localtonet --stop-service --authtoken YOUR_TOKEN_HERE
sudo localtonet --remove-service --authtoken YOUR_TOKEN_HERE
Updating Localtonet when running as a service

Stop the service first, replace the binary with the new version, then start the service again:

sudo localtonet --stop-service --authtoken YOUR_TOKEN_HERE
# replace binary
sudo localtonet --start-service --authtoken YOUR_TOKEN_HERE

Plex Settings to Optimize for Tunnel Access

🔗 Add the tunnel URL as a Custom Server Access URL

In Plex Web, go to Settings → Server → Network → Custom server access URLs. Add your Localtonet URL (e.g., https://myplex.localto.net). This helps Plex clients find and prefer your tunnel URL when connecting remotely.

🔒 Set Secure Connections to Preferred

In Settings → Server → Network → Secure connections, choose Preferred. Localtonet provides HTTPS automatically, so this ensures clients always use the encrypted connection.

🚫 Optionally disable Plex built-in Remote Access

If the Localtonet tunnel is your primary remote access method, you can disable Plex's built-in Remote Access under Settings → Server → Remote Access. This removes the port 32400 exposure on your public IP entirely.

Plex Remote Access Methods Compared

Method Port Forwarding Works Behind CGNAT Speed Cap Static IP Required Difficulty
Localtonet Tunnel Not needed No cap (paid plan) Not needed ⭐ Easy
Plex Built-in (direct) Required No cap Recommended ⭐⭐ Medium
Plex Relay (fallback) Not needed 2 Mbps max Not needed ⭐ Automatic
VPN (WireGuard / OpenVPN) Usually needed Depends No cap Recommended ⭐⭐⭐ Complex

Localtonet Tunnel

Port forwardingNot needed CGNATWorks Speed capNone Difficulty⭐ Easy

Plex Relay

Port forwardingNot needed CGNATWorks Speed cap2 Mbps max Difficulty⭐ Automatic

Plex Built-in Direct

Port forwardingRequired CGNATFails Speed capNone Difficulty⭐⭐ Medium

Troubleshooting

Problem Cause Fix
Plex asks for Remote Watch Pass after setup Plex Pass or Remote Watch Pass required for video since April 2025 Subscribe to Remote Watch Pass ($1.99/month) or Plex Pass ($6.99/month). This is a Plex policy, independent of the tunnel.
Tunnel URL loads but Plex shows "Not available" Plex app not using the tunnel URL Add the tunnel URL to Custom server access URLs in Plex Network settings
Stream buffers or quality is low Plex is routing through Relay (2 Mbps cap) instead of the tunnel Make sure the tunnel is active and the URL is set in Custom server access URLs
Tunnel works in browser but not in Plex app Plex app connects via plex.tv and may not resolve the custom URL automatically Open Plex directly via the tunnel URL: https://your-url.localto.net/web
macOS Gatekeeper blocks the binary Unsigned binary warning from macOS Use Homebrew install instead, or go to System Settings → Privacy & Security → Allow Anyway. Homebrew avoids this entirely.
Docker Localtonet cannot reach Plex at 127.0.0.1 Containers have separate network namespaces Use host.docker.internal (Windows/macOS) or 172.17.0.1 (Linux) as the tunnel IP
Tunnel disconnects after reboot Localtonet not running as a service Run --install-service and --start-service to register Localtonet as an auto-starting background service

Frequently Asked Questions

Do I need Plex Pass to use Localtonet with Plex?

Localtonet itself does not require Plex Pass. However, since April 29, 2025, Plex requires either a Remote Watch Pass ($1.99/month per viewer) or a Plex Pass ($6.99/month for the server admin) to stream personal video content remotely. Music via Plexamp and photos remain free. Localtonet provides the connection. The subscription requirement is enforced by Plex independently.

Why is Plex remote access not working without port forwarding?

Plex's built-in remote access requires port 32400 to be reachable from the internet, either through manual port forwarding or UPnP/NAT-PMP. This fails when your ISP uses CGNAT (carrier-grade NAT, common on mobile and some residential connections), when you are behind double NAT, or when your router does not support UPnP. In these cases Plex falls back to Relay mode, which caps speed at 2 Mbps. A Localtonet tunnel bypasses all of this by using an outbound connection that does not require any open inbound ports.

What is Plex Relay and why is it slow?

Plex Relay is a fallback that routes your media stream through Plex's own servers when a direct connection to your Plex Media Server fails. Relay connections are capped at 2 Mbps, which is not sufficient for 1080p or 4K video. Content gets transcoded down to fit within the cap, reducing quality regardless of your actual connection speed. A Localtonet tunnel provides a direct connection to your server and is not subject to the Relay cap.

What port does Plex Media Server use?

Plex Media Server uses port 32400 by default for its web interface and client connections. This is the port you enter when creating a Localtonet HTTP tunnel. You can verify or change it in Plex Web under Settings → Server → Network → Manually specify public port.

How do I keep the Plex tunnel running after a restart?

Install Localtonet as a system service using the built-in commands. Run sudo localtonet --install-service --authtoken YOUR_TOKEN followed by sudo localtonet --start-service --authtoken YOUR_TOKEN. This works on Windows (Windows Service), Linux (systemd), and macOS (launchd). After installation, Localtonet starts automatically on every boot and restarts if it crashes.

Can I use a custom domain for my Plex tunnel?

Yes. Add your domain in the Localtonet DNS Manager, then update your nameservers to ns1.localtonet.com and ns2.localtonet.com at your domain registrar. After DNS propagation, select Custom Domain when creating the HTTP tunnel. Your Plex server will be reachable at a URL like https://plex.yourdomain.com with automatic HTTPS and no certificate setup required.

Is it safe to expose Plex through a tunnel?

A Localtonet tunnel is safer than opening port 32400 directly on your router because the tunnel uses an outbound connection and does not expose your home IP address. Your Plex server is still reachable via the tunnel URL, so keep Plex updated and use a strong Plex account password. For additional protection, enable Localtonet's HTTP authentication or SSO on the tunnel so users must authenticate before reaching Plex at all.

Stream Your Plex Library from Anywhere

No port forwarding. No static IP. No 2 Mbps Relay cap. Set up in minutes on Windows, Linux, macOS, or Docker.

Get Started Free →

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.