Your problem is that Twonky is embedding local addresses in absolute URLs in the web pages. I have no idea whether Twonky can be configured to only do “relative URLs” in the pages, however there is an easy work-around using SSH to create a SOCKS proxy.
This side-steps your problem because by tunneling into your home network, your requests come from a local IP behind your NAT router on the same network as your MBL. Naturally, you’ll need something on the receiving end to receive the SSH inbound connection to your network.
A linux box can do this, or a Windows box running an SSH server service, or you can use your router if you have DD-WRT firmware, or you can use the MBL itself since it’s just a linux system.
Here’s how it works:
Let’s assume you’ve enabled the SSH protocol on a local Linux system you happen to have running somewhere on your network. Even though you can use your MBL, you’d need to set a password on it, and you’d run into trouble with WD Tech Support if you mess with it. You can generalize what I’m writing here to the MBL.
Most Linux system run SSH daemon by default. There’s nothing to do on the server end. sshd listens on port tcp/22. Let’s say your Linux box has an IP address of 192.168.2.10.
Open the admin page on your router and create a firewall rule that will forward connections from the internet to your Linux box’s ssh daemon. Let’s say anyone connecting to port tcp/8022 on the internet side of the router will be forwarded to port 22 on the Linux box at 192.168.2.10. Usually this setting is under “Security”. If you want to restrict only connections from your work network, you can do that here. I’d suggest you leave it open for starters, and then go back and secure it later.
You’ll need your IP address on the Internet for your home network. Go to http://dnsstuff.com from your home computer and check the upper left hand side of the screen. It’ll be there. Or you can just log into your router and check it in the Internet connection status. Your IP will likely change from time to time, unless you’ve leased a static IP. Dynamic DNS might be able to help with that, but that’s beyond the scope of this note.
Next, you need to install an SSH client on your computer at work. If you’re running Mac OSX or Linux, you’ll already have one. If you’re on Windows, you’ll need one and I recommend PuTTY.
Now we have to establish a connection from your work computer, over the Internet to your home network.
For Linux and Mac OSX, open a terminal and type:
ssh -D 20443 -p 8022 user@your_home_network_internet_ip
The -D opens a socks proxy on port 20443 on the localhost (your work computer). The -p tells SSH to use port 8022 instead of 22 which is the default. The user is your username for your Linux or MacOSX system at home, and your_home_network_internet_ip is your internet IP address on your home router.
For PuTTY, go into the settings for SSH and get it to create a socks proxy for you. Then just fill in the blanks with the ip and port for your destination. Before hitting “connect”, just save it under a profile name so you can use it easily.
You’ll be prompted for your username and password at your home system. Just log in.
If you want to make things even easier, I’d suggest creating an SSH key and using the PuTTY Agent or using ssh-agent. Then you only have to save the private key in memory and save some password typing for each time you connect. Again, that’s beyond the scope of this note and easily Googleable (is that a word?)
Now, with your SSH tunnel set up, and your socks proxy going, all you need to do it tell your web browser to use a socks proxy. In Firefox, go to Advanced → Network Settings → Proxy and fill in the socks line. It should be localhost and the port will be 20443 from this example. Choose SOCKS 4 OR 5, whichever works.
Once this is done, your browser will be able to see your entire internal network at home, and will browse the Internet as though you were at your home network.
So, type in the ip address of your MBL into the URL bar and away you go: http://192.168.2.xx:9000
If you want to bypass the proxy, just throw sites into the exclude list in the proxy settings panel of Firefox. One suggestion to enhance your privacy, since your entire session is encrypted from your work computer to your home network: Get firefox to make DNS requests over the socks tunnel instead of locally. Go into about:config and change the network.proxy.socks_remote_dns boolean to true.
Happy (private) browsing,
M