I am trying to bypass a proxy server at my school due to it's unnecessary restrictiveness by using SSH tunneling over HTTPS. I have succeeded by using a free SSH tunneling service, and proxytunnel, which supposedly creates generic HTTP(S) tunnels through proxies to a remote server.
The problem is that the tunneling service I'm using is not very reliable. 9/10 times I try creating the tunnel by using the command
ssh email@example.com -p 443 -ND 1080 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port —v -d %h:%p" I receive
ssh_exchange_identification: connection closed by remote host, so I assume the server is just overloaded.
This server is also quite slow as you might expect from a free service. This method DOES WORK, it just isn't what I want.
So, I have an extra computer at home running
sshd listening in port 443, and I port-forwarded port 443 on the router. I have connected to the home server from a remote network that is not behind the proxy, so I know it is accessible from the outside.
Now, something interesting happens when I run
ssh firstname.lastname@example.org -p 443 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port -v -d %h:%p" from the restricted network:
ssh_exchange_identification: connection closed by remote host. I get this every single time I try connecting from the restricted network no matter what.
So why can I connect to the free server, but it won't let me use my home server? Adding
-vvv (For the
ssh command part of the command, not
proxytunnel) doesn't yield any helpful information other than it cannot connect to the home server. If it helps, I think
proxytunnel is not the culprit because it prints out
Via proxy.ip.address:port -> home.server.ip:port, which means it has connected to the proxy.
proxy.ip.address is the restrictive proxy that I'm trying to bypass, just to clarify.