As you know, in many countries censorships are prevents us to reach some sites.

In Turkey, there will be censorships on Facebook and Youtube.

I thought It will be great to pass these censorships over HTTP server.

Is there any scripts or applications which may allow us to use HTTP server like a tunnel?

Or, how can I implement it, what will I use?

We will rent a server with unlimited traffic and use it 5-10 people just for tunneling.

  • 2
    Just setup a VPN but use 80/443 instead of the default port
    – Chopper3
    Mar 7, 2014 at 9:15
  • See serverfault.com/questions/63929/… and the softwares: corkscrew and proxytunnel.
    – ysdx
    Mar 7, 2014 at 14:24
  • Are sympathetic as I am to your situation, you are asking us to assist you in circumnavigating the restrictions our peers have implemented. This is explicitly off-topic.
    – user62491
    Mar 7, 2014 at 17:08

4 Answers 4


You could use OpenVPN. If you use a OpenVPN server listening on port 443, it will probably not be filtered. However, people analyzing your network traffic will know that you are using OpenvPN: you might want to avoid this.

If you want to avoid this, you could connect to the OpenVPN server through a HTTPS proxy. OpenVPN knows how to use a HTTP proxy but not a HTTPs one so you have to use a tool such as socat:

  • use socat on localhost to forward to a HTTPS proxy (deployed near the OpenVPN server);

    socat TCP-LISTEN:9999,bind=localhost OPENSSL:proxy.example.com:443

  • ask OpenVPN to use the localhost as a HTTP proxy.

OpenVPN -(HTTP proxy)-> local proxy unwrapper -(TLS)-> HTTP proxy -(OpenVPN/TCP)-> OpenVPN Server


You might want to use PPP over SSL:

socat OPENSSL:ppp.example.com:443 EXEC:"sudo pppd nodetach noipdefault notty noauth"

or PPP over HTTPS proxy:

socat EXEC:"corkscrew www.exmaple.com 443 ppp.example.com 9999" EXEC:"sudo pppd nodetach noipdefault notty noauth"

If you only want people to access websites, the simpler solution is probably to setup a CONNECT capable) HTTPs proxy.


You might setup a SSH tunnel and use ProxyCommand with corscrew to relay it to a HTTPs (or plain TLS) proxy:

ssh ssh.example.com


 Tunnel point-to-point
 ProxyCommand corkscrew proxy proxyport %h %p

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