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 have an ISP (public hospital) who is blocking everything through a program called Fortiguard. It's very annoying. Its blocking my public library as a terrorist organization, my work email saying its considered social media, my computer support and coding sites under the category of "Hacking".

However Crackle, Netflix, Youtube, Facebook, and Pandora seem to work well. I'm surprised these website are even working. VPN's don't work. Changing the DNS server doesn't work. HTTPS doesn't even keep me safe. The only thing which does work is Tor. I would like to route all my system connections through a trusted exit node in Tor.

I figured the best way to do this was to create a VPN server with a hidden service address (vps is limited in bandwidth) in on my VPS (if they haven't blocked ssh). To do this I need to route everything through the Tor proxy and then to the hidden service address via the vpn protocol. I'm staying here for three more days and I would really love to give this hospital IT a piece of my mind but to avoid confrontation I would much rather just cut the crap and bypass all this.

Long story short: Is there a way to route vpn through proxy? So the Internet access will work like this:

PC --> Proxy --> VPN --> Internet

share|improve this question

Read the official manual.

You can launch openvpn in the next manner:

# openvpn --config config.file --http-proxy 3128

However, http-proxy doesn't support UDP, probably, you can do this only with TCP vpn.

But there is --socks-proxy option for openvpn, you can use socks5 instead of http-proxy, socks5 do both UDP and TCP.

share|improve this answer

This is not a VPN, but its a solution to get around the proxy servers. Install sshd if it isn't already.

sudo install sshd 

Have sshd listen on a non-standard port. In in /etc/ssh/sshd_config you will see

port 22

You either change that port number or make sshd listen on multiple ports with several port directives like

port 22
port 5743

Change the port number or leave as you wish.

Load the new configuration with the command:

/etc/init.d/sshd restart 

Install squid proxy server on your sshserver.

 sudo apt-get install squid3

Have the squid proxy server listing to say port 8080 on of your sshd server by modifying the file /etc/squid3/squid.conf .


And that you can connect to it with these lines

acl localhost src ::1
acl to_localhost dst ::1

Load the new configuration with the command

 /etc/inid.d/squid3 restart

You can now use putty or any other ssh client on a machine at work to connect to your sshserver. An example for the command line:

ssh -L 8081: user@sshserver -p 5743

Last step, set your browser's proxy settings to port 8081 of . When your browser makes a request to the local machines address port 8081, your ssh client listening to that port will tunnel the request to your sshserver listening on port 5743 of the sshserver. The ssh server will then forwards the traffic clear text to the squid proxy server listening on port 8080 of the sshserver. The proxy serve running on your sshserver will now proxy your web browser's request to youtube, facebook google ect.

share|improve this answer

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.