Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm sitting in a pub which promises wifi but in fact only seems to allow http and https over their standard ports, so no github, and no connecting to my home machine over ssh.

How can I bypass all this sort of stupidity for good?

I have a machine at home which I can leave running all the time. Both my laptop and my home machine are ubuntu boxes.

I'm thinking, http server on home machine, program on laptop catching all attempts to contact the network, encrypting them, and forwarding over http to the home machine, which then goes and does its thing over its clear internet connection, and sends the results back.

Then wherever I can get http over port 80 to home, I have proper access.

Is there an easy way to do it? Does that easy way have a simple page of documentation in the form of 'this is what you type on your laptop', 'this is what you type on your home machine'.

If not, what's the least hard way, and where are the clues?

share|improve this question
up vote 2 down vote accepted

Have you tried to set your ssh daemon to listen on port 443? It should allow you to ssh to your machine at home as long as they don't actually inspect the packages to only allow https traffic.

It's quite easy. Edit /etc/ssh/sshd_config and append Port 443 on a new line after Port 22:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
Port 443
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

Restart the ssh daemon with sudo service ssh restart, and netstat --listening should show that a process is listening for https connections.

If it works, you can tunnel all your traffic through your home machine to access github etc. You could set up a proper vpn, or use try using an easier approach such as sshuttle, that only require a program on the client and standard ssh setup on the server.

share|improve this answer
Thanks Egil, but that will break as soon as some twerp decides to block 443 as well. What I'm looking for is a way to send all my laptop's network traffic encrypted over port 80. That sounds like the solution to the sort of pillocks who set up public wifi. – John Lawrence Aspden Apr 11 '11 at 14:42
Although actually one of the vermin is bound to block http to non-approved locations one day. So even better would be a way to get google to forward packets home. TCP over gmail? – John Lawrence Aspden Apr 11 '11 at 14:44
If you don't run a web server on the machine, you could make ssh listen on port 80 as well. – Egil Apr 11 '11 at 15:21
that's a good idea. any thoughts on how to catch all outbound traffic attempts and send them over ssh? – John Lawrence Aspden Apr 11 '11 at 17:30
Thats where sshuttle steps in; it sends all the traffic through the ssh server. – Egil Apr 11 '11 at 17:38

Your Answer


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.