Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I run a web app in one of my lab servers, and I have already setup X11 Forwarding on those machines. Other lab members can tunnel through SSH, and browse that web app on their local browser at home.

I can't. Last time I checked with them, there is almost nothing I need to do.

When I type 192.168.1.113/webapp I get nothing.

Any tips?

THanks.


I ended up using the second method :)

ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
share|improve this question
    
@BlueXrider general, yes, on-topic, yes. For something like this, the versions of Ubuntu don't really matter, its about as on-topic as What is a torrent and how do I use it which is considered on-topic. :) –  jrg Mar 12 '12 at 1:12
    
Thank you guys. –  CppLearner Mar 12 '12 at 1:43

1 Answer 1

up vote 13 down vote accepted

There are two ways you can do this with SSH.

Tunnel Everything with a SOCKS proxy

Log in to the remote machine using the following command:

ssh -D 8080 remote-host

Now go to your browser's proxy settings, and configure it to use a SOCKS proxy with host name 127.0.0.1 and port 8080 (or whatever port you passed to the -D option). Now all pages you load in your web browser will be tunnelled through the SSH connection. You should now be able to access the private web page in the same way you would from the remote host.

Once you are done, set your browser's proxy settings back to normal.

One down side of this method is that all other traffic in the web browser will also be going through the SSH connection. On the upside, you can access the remote servers with their real host names, and can easily access multiple private sites.

Tunnel a single port.

The alternative method is to use SSH to forward a single port:

ssh -L 8080:server-hostname:80 remote-host

Now if you point your web browser at http://localhost:8080/, you should see the contents of http://server-hostname/ as it would appear from the remote host.

The benefit of this method is that it leaves the rest of the browser traffic alone. The downside is that some links might not work if the remote site uses absolute URL references. If the site mostly uses relative URL references, then this method should be sufficient.

For both of these solutions, there is nothing special about the port 8080. You can use any free local port number you want, as long as you remember to use the same one in the ssh invocation and in the web browser.

share|improve this answer
1  
Thanks. It was very helpful! I managed to do it this way: ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N something like this (the second method). –  CppLearner Mar 12 '12 at 1:43
    
Is it correct that I must configure only a socks proxy in the first method (see: spareclockcycles.files.wordpress.com/2009/04/…). I.e. it would not work, if I point the http proxy to 127.0.0.1:8080? If this is correct, perhaps you could point out in your great answer, that one has to set up only the socks proxy. –  student Jul 18 '12 at 11:31

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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