I've got my Pi set up with Kodi and my video's are on an external HDD connected via USB. The Pi's got an Ethernet connection to it, so it's good for accessing via my internal network, ie I can browse files on my PC, control it via an iPhone app...

What I would like to do it be able to access the files outside of the network, a bit like when I used Plex a few years back.

Is there something you can do to get this shared? Or another piece of software that can run in the background ( I don't want it to use too many resources).

I really just want to be able to steam or download video's when I'm at work / friends house etc...


Not sure if I understand. Your external harddrive is a network accessible harddrive in your network? If that is true, then you need to make it accessible via SMB or another protocol.

Here is a solution I do and that works very well. I have my harddrive on a RP3 using OpenMediaVault (a NAS software that turns the Pi into a NAS). Then I have a second OSMC/Kodi on my second Pi3. I share my drive with SMB on my OpenMediaVault and Kodi can access it via Wifi/LAN.


Of corse, you could just connect your drive directly to your Kodi Pi, but I had the feeling that you want to keep it separate.

  • Thanks... the HDD is plugged straight into the Pi via USB.. I have it shared as SMB as I can access this elsewhere on the network... I managed the files on a different computer, drag n drop into a network share.. I also want to add a seperate Pi upstairs to use the same files shared over the network.. I didn't think though with SMB that you can easily access it outside of the local network though, I don't have a static IP to set anything up that way.. so i'm not sure how I can access the files via the web... – zombiecode May 11 '16 at 8:23
  • Perhaps you try to get an URL mapping service. I connected my old NAS that way to the internet and made its files available that way. However, very high frequent use of files from a few locations might be already too much for that NASPi anyway... – RalfB May 11 '16 at 19:00
  • If you have control over the router and the network translation than its possible. With other network ,i assume you mean an internet router and the web ... – RalfB May 11 '16 at 19:01

so what you need to do is open up a few ports on your router, assuming you are an adult, or have an adult who pays for internet service. If you're on a public network forget it, out of luck.

This should take all of about 3 minutes. I swear it will take you longer to read this than to actually set everything up. Here is what I would do:

Login to the Rpi. run ifconfig, note your local ipv4 address and your default gateway address, they are most likely in the form 192.168.X.X or 10.1.X.X however it does not matter what format the address is in.

Navigate to the default gateway address in a browser window, you can do this from any computer on your network. Find the section for port forwarding, sometimes it's called application forwarding. It helps to know the make/model of your router (located on the sticker on the bottom) then you can look up a quick youtube to walk you through the process.

Once you find where to do the port forwarding, simply forward the ports you want access to, and which computer you want those ports pointing at.

Let's say your Rpi is located at and you wanted http access in order to view a web site you are self hosting. You would simply forward port 80 to and that's it. Now when you type your external ip address into the browser, from another network, it won't work if you're already there, it will redirect you straight to the web page hosted on the Rpi.

However, you may not know your external ip address, and it may change from time to time, unless you pay for a static ip address from you isp. Don't do that. You don't need it. DDNS is the solution (this is what RalfB is talking about when he said to 'get a URL mapping service'. DDNS stands for dynamic domain naming service. What it does in simple terms: give your external ip address a human readable format in the form of a subdomain like deenski.issodamnhelpful.thanksdeenski instead of 74.123.xxx.x or something. The DDNS client you will need to install also checks your ip address in 5 - 10 minute intervals to see if they need to 'point' the domain name to a different ip address if yours were to change. I use no-ip for my DDNS provider. However, any of the service providers would be fine. Just search 'free ddns' and you'll find what you need. Typically the providers allow about 3 free hostnames. Note that you do not need to install their updater client on your Rpi, you may use it on any pc on your network, since it is updating the external ip address of your entire network. If you have a machine you leave on 24/7, install it on that one. Once you have it up and running, you should be able to go to whatever.yourchosenhostnameis.whocares and see your working web page.

One more thing though, and if you're ssh-ing into your Rpi, I am sure you already know this, but you won't want to forward port 80, you will want an abstract port number. Once you choose a port you will need to navigate to that port using whatever.yourchosenhostnameis.whocares:<port number>. For ssh access this would be whatever.yourchosenhostnameis.whocares:22 (DO NOT PORT FORWARD 22 WITHOUT USING ENCRYPTION KEYS). Sorry for breaking it down to the base level if it wasn't necessarry. Just trying to help.

If you need, here is an article from someone I am sure writes more clearly concise than I do: http://www.groovypost.com/howto/port-forwarding-guide/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.