Can I create SSH to tunnel HTTP through server like it was proxy?
Solution 1:
You can do this using ssh
ssh -L 80:remotehost:80 user@myserver
You will have a tunnel from your local port 80 to the remotehost port 80 then. This does not have to be the same as myserver. To make that transparent you should add an entry to the hosts file. If you don't do that vhosts will not work. If you want a SOCKS-proxy connection you could also use
ssh -D 5000 user@myserver
This will create a SOCKS-proxy on localhost port 5000 which routes all requests through myserver.
Solution 2:
Yes it is possible.
Run ssh -D port user@host
and set up your client to use your box as a SOCKS proxy.
If you need a HTTP proxy specifically then you can use Proxychains and route it via the previous SOCKS.
Solution 3:
sshuttle works like an VPN but over SSH.
Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling.
https://github.com/sshuttle/sshuttle
Solution 4:
Putty does this pretty well too.
Under SSH, go to Tunnels. At the bottom, put 8080 in the port, and for destination, leave it blank and select the "Dynamic" radio button. That's all you need to do, now connect to the server using Putty.
Once connected, you have a proxy server running on your localhost at port 8080 which will proxy all requests thru your server.
Now use a web browser and setup the proxy by setting host=localhost and port=8080 and make sure it is a SOCKS proxy that you select. I do this all the time, so if you use Firefox, make sure to install the FoxyProxy plugin since it makes turning the proxy on/off a one click affair.
Caution: Be aware that by default, your DNS requests are not proxied. So the website that you visit via the proxy will still be logged (if they log this stuff). You can set firefox to proxy DNS requests as well, it just doesnt do it by default.