Remote access failure

I would also recommend using the external plex.direct domain name for your server to check whether the port is open as part of the port forward testing rather than using your external IP or a dnyamic DNS name, as this will validate whether remote clients are being directed to your server and can access the port.

To discover whether the external IP of your Plex server is being registered and published by plex.tv enter the address https://plex.tv/pms/resources.xml?includeHttps=1&X-Plex-Token=XXXXX into your web browser. You can find your plex token by following the instructions given in the article Finding an authentication token / X-Plex-Token.

Plex.tv will respond with XML information. You may receive a blank page, in which case you will need to view the source of the page. It should look something like the following:

<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1">
  <Device name="Plex Server Name" product="Plex Media Server" productVersion="1.18.9.2578-513b381af" platform="Linux" platformVersion="XXXXXXX" device="Docker Container" clientIdentifier="XXXXXXX" createdAt="1582718963" lastSeenAt="1585702806" provides="server" owned="1" accessToken="XXXXXX" publicAddress="WWW.XXX.YYY.ZZZ" httpsRequired="1" synced="0" relay="1" dnsRebindingProtection="0" natLoopbackSupported="0" publicAddressMatches="1" presence="1">
    <Connection protocol="https" address="AAA.BBB.CCC.DDD" port="32400" uri="https://AAA-BBB-CCC-DDD.HHHHHHHH.plex.direct:32400" local="1"/>
    <Connection protocol="https" address="WWW.XXX.YYY.ZZZ" port="32400" uri="https://WWW-XXX-YYY-ZZZ.HHHHHHHH.plex.direct:32400" local="0"/>
  </Device>
</MediaContainer>

The first Connection protocol line should list the local internal network address of your server (i.e. AAA.BBB.CCC.DDD) with the subsequent line listing the external network address of your server (i.e. WWW.XXX.YYY.ZZZ. If the external address is not listed, then your Plex server is not registering for remote access with plex.tv and you need to troubleshoot.

The uri field is the remote plex.direct URL that plex.tv publishes to remote hosts so that they can find your server. It will comprise of your external IP address separated by dashes - instead of periods . (e.g. WWW-XXX-YYY-ZZZ) and a unique hash code for your server (e.g. HHHHHHHH), In the example above it is https://WWW-XXX-YYY-ZZZ.HHHHHHHH.plex.direct:32400.

Copy the remote uri and attempt to access it from a web browser on a phone or device not connected to your network. If you get the plex login page and access your plex browser, then remote access to your server should be working. Testing from a device connected to your internal network won’t work unless you have NAT loopback enabled and isn’t really testing your external connectivity.

If you don’t have a device that you can use to test externally there are a couple of options.

  1. If you have a VPN service connect to it, ensuring it is configured so that all traffic and DNS queries are resolved through the VPN and then attempt to connect to the remote uri. As all traffic on your device is being tunnelled through the VPN the connection to your Plex server should originate from the external endpoint of the VPN.

  2. Use a free website testing service such as https://www.websitepulse.com/tools/website-test. If your plex server is responding to remote requests you should receive an error status of 401 - Unauthorized as your plex server should reject the connection as you haven’t logged in (if you received a status of Ok then that means your plex server isn’t requesting user credentials for remote users and you should disable remote access immediately and investigate why). If the status returns as Connection timed out then there is an issue with remote access which required further investigation.

If it doesn’t connect, you can check whether WWW-XXX-YYY-ZZZ.HHHHHHHH.plex.direct resolves to your external IP, and then specify it as the host when using the port forward tester to check if the port is open.

In my case plex.tv publishes the correct uri for remote access to my plex server, and I can access it from a remote location using the uri. I believe the error therefore lies with how plex is verifying the remote access status rather than an issue at my end.

4 Likes