Plex Nine RemoteAccess
From Plex
Contents |
Accessing Plex/Nine as a Remote Library
Currently, there are two methods you can use to access your Plex/Nine library remotely from another computer outside your home or local network. Note that when such remote access occurs, Plex will serve a requested file at full bitrate; there is currently no transcoding that occurs. This means that you will need a significant amount of sustained network bandwidth both uploading from your server as well as downloading to your client - the higher the bitrate of content you're accessing (e.g. 720p or 1080p video), the higher bandwidth required.
Directly
By adding the URL
http://x.x.x.x:32400/library/sections
as a source inside the Video Plug-ins section inside Plex, where x.x.x.x is your external IP address (or hostname). To do this:
- Open the Plex Client
- Choose Video Plug-ins
- Press the C key to open the context menu
- Choose Add Source
For this to work you need to:
- Know the external IP address of your home connection (What's My IP Address?) or use a dynamic DNS service (for example DynDNS or No-IP)
- Create a port forward for Plex Media Server if you are behind a router (portforward.com).
Pros
- Doesn't require any additional software
Cons
- Security options of the Plex Media Server have to be disabled for this to work
- Other people can access your Plex Media Server if they know your IP address (there is no login)
- Needs a (extra) port open on your router specifically for PMS
- Data flows unencrypted over the internet
More Information
Connect via SSH
For this to work you need to:
- Know the external IP address of your home connection (What's My IP Address?) or use a dynamic DNS service (for example DynDNS or No-IP)
- Enable Remote Login (SSH) on one of your machines inside your home network (this can be the same box as where PMS is running)
- Create a port forward for SSH (default port is 22) if you are behind a router (portforward.com).
The PMS service is now reachable as if you were sitting at the machine in your local network:
http://localhost:32400
You can add this url (+ /library/sections) as a source as described above under "Directly" (don't forget to quit the PMS instance running on the same machine as the Plex client), but there is a better/nicer way to access your remote library:
To have access to the remote Media Server instance as if it is running in your local network, you can have it advertised as a service over Bonjour. Together with opening the SSH connection and creating the tunnel, your Terminal input is:
dns-sd -R PMS _plexmediasvr._tcp . 32400 & ssh -N -L 32400:localhost:32400 x.x.x.x -l username -p 22
Pros
- Your Plex Media Server is not directly accessible from the internet, it's now behind a login and only accessible through a tunnel
- If you tunnel all your services over SSH, you need only one port open on your router which is then used for everything
- Data flow over the internet is encrypted
- Even better protection possible when using public/private key authentication
Cons
- You need some basic knowledge of SSH
More Information
dns-sd command line explained
dns-sd -R PMS _plexmediasvr._tcp . 32400 &
| dns-sd | the program name of the DNS Based Service Discovery utility |
| -R | register a DNS entry |
| PMS | the name of the instance of the service we're registering |
| _plexmediasvr._tcp | the type of service |
| . | the domain, . means the local machine |
| 32400 | the port number |
| & | The & is not part of the dns-sd command. It sends the process to the background so we can do other things in the Terminal |
ssh command line explained
ssh -N -L 32400:localhost:32400 x.x.x.x -l username -p 22
| ssh | the ssh utility |
| -N | do not execute shell or command |
| -L 32400:localhost:32400 | forward local port to remote address
the first 32400 is the local port localhost is the hostname of the machine we want to reach on the other end of the connection (so this localhost is NOT the machine you're sitting behind) the second 32400 the remote port (the port on the other end) |
| x.x.x.x | the external ip address or hostname of your connection at home |
| -l username | login with this username |
| -p 22 | connect to this port (the ssh connection) |

