Server unavailable remotely

As of Monday I’m unable to connect to PMS remotely. When I’m on the home network it all loads. The server itself is assigned a static local IP, and the router is configured to redirect all external requests to that one static IP. The router has also specified that static IP as a DMZ for testing purposes and it makes no difference. If I try to access the Web UI at https://app.plex.tv/web/app it simply shows this: https://i.imgur.com/IqlOVIJ.png. The same is true when accessing the server directly with its public IP, so https://my_public_ip:32400/web/app. The latter fact is strange, because if the server was unavailable, none of the Web UI would even load. I have several other services running on the machine, like SSH, which work normally, so connectivity is not an issue.

When looking at the server settings from the Web UI when in the home network, none of the IPs can be found: https://i.imgur.com/LFD9yX4.png. I’m running the latest version, 0.9.16.6.

Further, when on iOS, the server is unavailable (https://i.imgur.com/crAYM7C.png), but there’s an exclamation point that, when clicked, somehow allows an “indirect” connection (https://i.imgur.com/AGyp8Sp.png), though I have no idea what that means.

Here is what the server log reports after just attempting to make a connection to the Web UI, and the Web UI stating that the server is unavailable:

Jun 01, 2016 13:00:15 [0x7f78d6bff700] DEBUG - Statistics: Flushing 1 expired bandwidth entries, 0 expired media entries.¬
Jun 01, 2016 13:00:16 [0x7f78d3bf9700] DEBUG - Request: [192.168.1.4:59381] GET /hubs?excludeFields=summary&excludePhotos=1 (3 live) TLS GZIP¬
Jun 01, 2016 13:00:16 [0x7f78d3bf9700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 13:00:16 [0x7f78d3bf9700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 13:00:16 [0x7f78d3bf9700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 13:00:16 [0x7f78d3bf9700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 13:00:16 [0x7f78f6bff700] DEBUG - Completed: [192.168.1.4:59381] GET /hubs?excludeFields=summary&excludePhotos=1 (3 live) TLS GZIP 118ms 6085 bytes 200¬

Here is additional logging from the last few minutes:

Jun 01, 2016 13:02:31 [0x7f78ed7ff700] DEBUG - NetworkServiceBrowser: SSDP departed after not being seen for 181.998383 seconds: 192.168.1.1¬
Jun 01, 2016 13:03:16 [0x7f78e97fe700] DEBUG - Request: [192.168.1.4:59384] GET /hubs?excludeFields=summary&excludePhotos=1 (7 live) TLS GZIP¬
Jun 01, 2016 13:03:16 [0x7f78e97fe700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 13:03:16 [0x7f78e97fe700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 13:03:16 [0x7f78d2bf7700] DEBUG - Auth: Refreshing tokens inside the token-based authentication filter.¬
Jun 01, 2016 13:03:16 [0x7f78d2bf7700] DEBUG - HTTP requesting GET https://plex.tv/servers/bbc663763401002923cd21cbd967e4e67c2ad191/access_tokens.xml?includeProfiles=1&auth_token=xxxxxxxxxxxxxxxxxxxx¬
Jun 01, 2016 13:03:16 [0x7f78e97fe700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 13:03:16 [0x7f78e97fe700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 13:03:16 [0x7f78f6bff700] DEBUG - Completed: [192.168.1.4:59384] GET /hubs?excludeFields=summary&excludePhotos=1 (7 live) TLS GZIP 120ms 6085 bytes 200¬
Jun 01, 2016 13:03:16 [0x7f78d2bf7700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for destielx18¬
Jun 01, 2016 13:03:16 [0x7f78d2bf7700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for devonmacmillan¬
Jun 01, 2016 13:03:16 [0x7f78d2bf7700] DEBUG - MyPlex: Added 19 super-tokens.¬
Jun 01, 2016 13:03:59 [0x7f78ed7ff700] DEBUG - NetworkServiceBrowser: SSDP arrived: 192.168.1.1 (http://192.168.1.1:8200/rootDesc.xml)¬
Jun 01, 2016 13:03:59 [0x7f78d2bf7700] DEBUG - HTTP requesting GET http://192.168.1.1:8200/rootDesc.xml¬
Jun 01, 2016 13:03:59 [0x7f78d2bf7700] ERROR - Error issuing curl_easy_perform(handle): 56¬
Jun 01, 2016 13:03:59 [0x7f78d2bf7700] WARN - HTTP error requesting GET http://192.168.1.1:8200/rootDesc.xml (56, Failure when receiving data from the peer) (Recv failure: Connection reset by peer)¬
Jun 01, 2016 13:06:16 [0x7f78e97fe700] DEBUG - Request: [192.168.1.4:59385] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP¬
Jun 01, 2016 13:06:16 [0x7f78e97fe700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 13:06:16 [0x7f78e97fe700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 13:06:16 [0x7f78e97fe700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 13:06:16 [0x7f78e97fe700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 13:06:16 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59385] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP 122ms 6085 bytes 200¬
Jun 01, 2016 13:09:16 [0x7f78d6bff700] DEBUG - Request: [192.168.1.4:59389] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP¬
Jun 01, 2016 13:09:16 [0x7f78d6bff700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 13:09:16 [0x7f78d6bff700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 13:09:17 [0x7f78d6bff700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 13:09:17 [0x7f78d6bff700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 13:09:17 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59389] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP 129ms 6085 bytes 200¬
Jun 01, 2016 13:11:01 [0x7f78ed7ff700] DEBUG - NetworkServiceBrowser: SSDP departed after not being seen for 181.998593 seconds: 192.168.1.1¬
Jun 01, 2016 13:12:17 [0x7f78e97fe700] DEBUG - Request: [192.168.1.4:59390] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP¬
Jun 01, 2016 13:12:17 [0x7f78e97fe700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 13:12:17 [0x7f78e97fe700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 13:12:17 [0x7f78e97fe700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 13:12:17 [0x7f78e97fe700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 13:12:17 [0x7f78f6bff700] DEBUG - Completed: [192.168.1.4:59390] GET /hubs?excludeFields=summary&excludePhotos=1 (6 live) TLS GZIP 133ms 6085 bytes 200¬
Jun 01, 2016 13:12:29 [0x7f78ed7ff700] DEBUG - NetworkServiceBrowser: SSDP arrived: 192.168.1.1 (http://192.168.1.1:8200/rootDesc.xml)¬
Jun 01, 2016 13:12:29 [0x7f78e97fe700] DEBUG - HTTP requesting GET http://192.168.1.1:8200/rootDesc.xml¬
Jun 01, 2016 13:12:29 [0x7f78e97fe700] ERROR - Error issuing curl_easy_perform(handle): 56¬
Jun 01, 2016 13:12:29 [0x7f78e97fe700] WARN - HTTP error requesting GET http://192.168.1.1:8200/rootDesc.xml (56, Failure when receiving data from the peer) (Recv failure: Connection reset by peer)¬

Here’s another random sampling from the log:

Jun 01, 2016 16:36:34 [0x7f78e8ffd700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 16:36:34 [0x7f78f6bff700] DEBUG - Completed: [192.168.1.4:59548] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP 124ms 6092 bytes 200¬
Jun 01, 2016 16:36:34 [0x7f78df7fd700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for destielx18¬
Jun 01, 2016 16:36:34 [0x7f78df7fd700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for devonmacmillan¬
Jun 01, 2016 16:36:34 [0x7f78df7fd700] DEBUG - MyPlex: Added 19 super-tokens.¬
Jun 01, 2016 16:39:34 [0x7f78e8ffd700] DEBUG - Request: [192.168.1.4:59549] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP¬
Jun 01, 2016 16:39:34 [0x7f78e8ffd700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 16:39:34 [0x7f78e8ffd700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 16:39:34 [0x7f78e8ffd700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 16:39:34 [0x7f78e8ffd700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 16:39:34 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59549] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP 112ms 6092 bytes 200¬
Jun 01, 2016 16:42:01 [0x7f78ed7ff700] DEBUG - NetworkServiceBrowser: SSDP departed after not being seen for 181.997639 seconds: 192.168.1.1¬
Jun 01, 2016 16:42:34 [0x7f78d2bf7700] DEBUG - Request: [192.168.1.4:59550] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP¬
Jun 01, 2016 16:42:34 [0x7f78d2bf7700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 16:42:34 [0x7f78d2bf7700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 16:42:35 [0x7f78d2bf7700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 16:42:35 [0x7f78d2bf7700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 16:42:35 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59550] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP 119ms 6092 bytes 200¬
Jun 01, 2016 16:43:29 [0x7f78e8ffd700] DEBUG - Sync: uploadStatus¬
Jun 01, 2016 16:43:31 [0x7f78d2bf7700] DEBUG - PublicAddressManager: Obtaining public address and mapping port.¬
Jun 01, 2016 16:43:31 [0x7f78df7fd700] DEBUG - PublicAddressManager: Obtaining public IP.¬
Jun 01, 2016 16:43:31 [0x7f78d4bfb700] DEBUG - NAT: UPnP, attempting mapping.¬
Jun 01, 2016 16:43:31 [0x7f78df7fd700] DEBUG - HTTP requesting GET http://plex.tv/pms/:/ip¬
Jun 01, 2016 16:43:31 [0x7f78df7fd700] DEBUG - PublicAddressManager: Got public IP from http://plex.tv: 192.x.x.234¬
Jun 01, 2016 16:43:31 [0x7f78df7fd700] DEBUG - MyPlex: Last published value didn't change, we're done.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, found device: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, found device: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, found device: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: UPnP, didn't find usable IGD.¬
Jun 01, 2016 16:43:33 [0x7f78d4bfb700] DEBUG - NAT: PMP, attempting mapping.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] WARN - NAT: PMP, got an error: Not Supported by gateway.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, attempting mapping.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, not an IGD: <http://192.168.1.2:80/description.xml>.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, didn't find usable IGD.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - PublicAddressManager: Mapping failed.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - MyPlex: Last published value didn't change, we're done.¬
Jun 01, 2016 16:45:35 [0x7f78e7ffb700] DEBUG - Request: [192.168.1.4:59555] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP¬
Jun 01, 2016 16:45:35 [0x7f78e7ffb700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 16:45:35 [0x7f78e7ffb700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 16:45:35 [0x7f78e7ffb700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 16:45:35 [0x7f78e7ffb700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 16:45:35 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59555] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP 119ms 6092 bytes 200¬
Jun 01, 2016 16:48:35 [0x7f78e8ffd700] DEBUG - Request: [192.168.1.4:59556] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP¬
Jun 01, 2016 16:48:35 [0x7f78e8ffd700] DEBUG - Auth: We found auth token (xxxxxxxxxxxxxxxxxxxx), enabling token-based authentication.¬
Jun 01, 2016 16:48:35 [0x7f78e8ffd700] DEBUG - Auth: Came in with a super-token, authorization succeeded.¬
Jun 01, 2016 16:48:35 [0x7f78d2bf7700] DEBUG - Auth: Refreshing tokens inside the token-based authentication filter.¬
Jun 01, 2016 16:48:35 [0x7f78d2bf7700] DEBUG - HTTP requesting GET https://plex.tv/servers/bbc663763401002923cd21cbd967e4e67c2ad191/access_tokens.xml?includeProfiles=1&auth_token=xxxxxxxxxxxxxxxxxxxx¬
Jun 01, 2016 16:48:35 [0x7f78e8ffd700] DEBUG - There were 1 top-level paths for Canada's Worst Handyman.¬
Jun 01, 2016 16:48:35 [0x7f78e8ffd700] DEBUG - It took 0.0 sec to serialize a list with 6 elements.¬
Jun 01, 2016 16:48:35 [0x7f78f63fe700] DEBUG - Completed: [192.168.1.4:59556] GET /hubs?excludeFields=summary&excludePhotos=1 (2 live) TLS GZIP 124ms 6092 bytes 200¬
Jun 01, 2016 16:48:35 [0x7f78d2bf7700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for destielx18¬
Jun 01, 2016 16:48:35 [0x7f78d2bf7700] DEBUG - MyPlex: Adding xxxxxxxxxxxxxxxxxxxx as token for 4 sections for dmacmillan¬
Jun 01, 2016 16:48:35 [0x7f78d2bf7700] DEBUG - MyPlex: Added 19 super-tokens.¬

Ubuntu server details:

Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.4 LTS
Release:	14.04
Codename:	trusty

3.16.0-62-generic #83~14.04.1-Ubuntu SMP Fri Feb 26 22:52:39 UTC 2016 x86_64

Has someone got any suggestions?

Note that my signature is outdated: all versions of Plex I’ve got installed on various devices are current.

Take a look in your logs and you find:

Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - NAT: UPnP, didn't find usable IGD.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - PublicAddressManager: Mapping failed.¬
Jun 01, 2016 16:43:34 [0x7f78d4bfb700] DEBUG - MyPlex: Last published value didn't change, we're done.¬

“IGD” is an Internet Gateway Device, aka, router / modem, and in this instance support UPNP properly (some don’t so don’t be surprised).

Go into Settings - Server - Remote Access and verify manually specify public port is selected. This turns UPNP off.

While there, disable remote acces and then enable again. Verify you have access.

1 Like

The router supports UPnP and is active. I have a lot of devices and services in the house.

I checked the “Manually specify public port” option and wrote 32400 and suddenly the private and external IPs were being found (vs the image linked to in the first post: https://imgur.com/LFD9yX4). This doesn’t make sense. It never used to need to be checked. Why would it need to be checked now?

It shouldn’t need to be checked now either if nothing has changed. My ISP loves to send new firmware updates. When they do, it breaks everything until I reload my saved configuration. That’s why I decided long ago to manually set it and be done. Also, if you are running two servers, you will need to manually specify a different port.

Plex can get your external IP easily. What you show in https://imgur.com/LFD9yX4) is precisely that plus the UPNP port it tried to use.

To be clear, you have a router/modem combo box which specifies the DMZ where your Plex resides or do you have a modem and separate router?

If you have two devices, is the inner-most also performing NAT? I ask because software which navigates its way out through double NAT and then maintains that connection active will work. Plex doesn’t maintain an active inbound connection. It is purely on-demand. This on-demand, inbound navigation through double NAT is tricky to setup.

Which configurations do you have ?

Plex can get your external IP easily. What you show in Imgur: The magic of the Internet) is precisely that plus the UPNP port it tried to use.

It says Unknown IP. I’m not sure what you mean.

I have a cable modem and its only purpose is to provide wired ethernet out; there is no wireless combined with it. I have this wireless router connected: WiFi Routers | Wireless Routers | NETGEAR. The modem is not providing any NAT; it just has ethernet ports out. The setup I’ve got has not changed since I bought the wireless router in February.

Look in your PMS logs, You should see where it goes and get’s it’s external IP. You can see where Plex scans your local network, looking for a UPNP IGD. It should look like this if not UPNP (none of mine are UPNP):

Plex Media Server.log:Jun 05, 2016 10:30:33.511 [0x7f7ae77f1700] WARN - NAT: PMP, got an error: Not Supported by gateway.
Plex Media Server.log:Jun 05, 2016 11:30:33.242 [0x7f7b0b7ff700] DEBUG - NAT: UPnP, getPublicIP didn't find usable IGD.
Plex Media Server.log:Jun 05, 2016 11:30:33.493 [0x7f7b0b7ff700] WARN - NAT: PMP, got an error: Not Supported by gateway.
Plex Media Server.log:Jun 05, 2016 12:30:33.237 [0x7f7af37ff700] DEBUG - NAT: UPnP, getPublicIP didn't find usable IGD.
Plex Media Server.log:Jun 05, 2016 12:30:33.488 [0x7f7af37ff700] WARN - NAT: PMP, got an error: Not Supported by gateway.
Plex Media Server.log:Jun 05, 2016 13:30:33.226 [0x7f7af37ff700] DEBUG - NAT: UPnP, getPublicIP didn't find usable IGD.
Plex Media Server.log:Jun 05, 2016 13:30:33.477 [0x7f7af37ff700] WARN - NAT: PMP, got an error: Not Supported by gateway.
[chuck@lizum Logs.61]$ 

Also, you should see where Plex reaches to Plex.tv for its public IP:

Jun 05, 2016 13:16:38.171 [0x700000de2000] DEBUG - HTTP success requesting GET http://plex.tv/pms/:/ip
Jun 05, 2016 13:16:38.171 [0x700000de2000] DEBUG - PublicAddressManager: Got public IP from http://plex.tv: xx.xx.xx.xx

If you go to http://ipchicken.com , you should see your public IP and it should match above.

Now log into your cable modem and see what it says is your WAN IP.

If the addresses are not the same, your cable ISP is creating a NAT layer and isolating you from the internet.

Continuing on this thought process;

If you have Real-IP -> ISP IP -> LAN IP (192.168.1.x) You now have a Double NAT situation. We can deal with this now that it’s known

Test this and report back.

I just moved and changed ISP’s, and am now having this very same issue. My router reports a 100.x.x.x IP, but ipchicken and Plex show a 66.x.x.x IP as my external IP. So how do I deal with the double NAT situation?

Update:
Resolved by contacting my ISP and they modified their router so my IP is now available via the internet. Plex is happy again!

This worked for me