Server Version#: 1.42.2.10122-3749b980e
I’m hoping someone can help me make sense of a strange reachability issue.
I recently migrated my Plex Media Server from one machine (“Server A”) to another (“Server B”). The goal was to have Server B host all media and run the main PMS process inside a network namespace that routes through a tunnel, while Server A acts as the front-end reverse proxy with the public domain and certificate.
In other words, Server B has no internet-accessible IP address at all — it’s reachable only over a private wireguard link (10.9.0.x). Server A terminates HTTPS at pms.mydomain.com and proxies traffic over HTTP to PMS on Server B.
When I first set everything up, it worked perfectly. Plex recognized the server, it appeared under my account, and clients connected through the domain without any problem. Then, a few days ago, the server abruptly became unreachable from the Plex Web app and from clients — even though:
-
The reverse proxy on Server A still works (I can curl https://pms.mydomain.com/?X-Plex-Token=… from outside and get a valid XML response).
-
Plex Media Server on Server B is running normally, libraries are intact, and it responds locally on port 32400.
-
Both machines can reach plex.tv and pubsub.plex.tv from the command line.
However, Plex.tv now marks the server as “unreachable,” and it never passes the internal reachability check during startup. The logs show a Published Mapping State response was 422 followed by “attempted a reachability check but we’re not yet online.”
I’ve tried:
-
Forcing customConnections=“https://pms.mydomain.com” and toggling secureConnections between 0 and 1.
-
Verifying that PublishServerOnPlexOnlineKey=“1” and that PlexOnlineToken is valid.
-
Testing connectivity from within the namespace (can reach both plex.tv and pubsub.plex.tv fine).
What’s puzzling is that if I start PMS directly on Server A (with the proxy pointing to localhost), it registers instantly and appears online in my account. Moving the exact same configuration and data directory to Server B makes it “unreachable” again, even though connectivity is identical from inside the namespace.
It feels as if Plex’s reachability test is somehow failing because the server isn’t bound to an internet-routable IP address, but I can’t confirm that.
Is there a reliable way to run PMS behind a reverse proxy like this, where only the proxy has the public address? Or some method to force Plex to treat the proxied HTTPS endpoint (pms.mydomain.com:443) as the canonical connection for reachability?
Thanks in advance for any insights — this one has me stumped.