0

I need to browse several websites (that also have flash content) through my home internet, while im in my work place. So from the website servers they see only access from my home IP.

There is no direct external public IP address on either home and office computers, and I don't have access to the routers for any changes (NAT/portforwarding, etc).
I also have my own server on the cloud with a public external IP that I can use to make this route. We can setup any software on the home computer, office computer and cloudserver.

I found a few useful links:

How do I set up a local SOCKS proxy that tunnels traffic through SSH?

http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel

But could not come up with a complete configuration for my case. Could you please let me know what options are there for this problem?

1

The external server certainly give options but I'd like to explore direct connections first.

They're faster and generally more reliable. They do however require an IP to connect and the routing at the other end to get your connection from router to server. You say you don't have these but I think you might be overlooking options.

  • I find it hard (not impossible) to believe that you have no legal IP. Most home connections have one. The router gets it and uses NAT and DHCP to give you private internal IPs. While at home you can ask Google for your IP address and it should tell you.

    Lots of home connections use dynamic IP addressing meaning your IP will change on a timetable determined by your ISP. You can work around that by using one of many dynamic DNS options.

  • The routing is harder. Traditionally I would ask you to forward a port by logging into the router. You say you can't do that... So what about UPNP? A lot of routers have this turned on by default and this essentially allows you to do the same thing. You lease a port from the router. Setting this up in Ubuntu is fairly simple:

    sudo apt-get install miniupnpc
    upnpc -a <local_ip> 22 22 TCP
    

    Then external machines can access your SSH server through your public IP.


Failing that, you could create a persistent connection from your home computer to the external server that tunnelled back a port to a SSH server running on your home computer. Then people could connect to you home through your server. I've called this reverse port tunnelling.

  • From home: ssh -L 22:0.0.0.0:2200 serveruser@server to expose your home SSH to the server. You'll probably also need to edit /etc/ssh/sshd_config and turn on GatewayPorts (see this)
  • Then from anywhere ssh -D -p2200 homeuser@server

Of course you may find that the connection from home to server stalls or times out. There are various options for working around that.


With either option you are exposing a seriously big door into your system. Please practise safe computing and follow my tutorial on making SSH more secure.

  • OP does have an intermediary system: "my own server on the cloud with a public external IP" – muru Dec 11 '14 at 10:36

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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