To test things I'm trying to establish a local ssh tunnel from my laptop to a site via ssh-server
, and download a page of the site (or view it in a browser).
The tunnel is made like this:
$ ssh -L 9999:www.gnu.org:80 ssh-server
I check the tunnel works with nc
program and ~#
characker on the server. I check I'm allowed to do http requests on ssh-server by running wget
and lynx
on the server -- they both run without errors.
But when I run wget --no-proxy localhost:9999
on the laptop I get error 403.
I can do the same thing using ssh ssh-server 'wget -O - http://www.gnu.org/' >> whatever
. But why the tunnel doesn't work?
So I want to clear up what is going on and what kind of things the proxy does not allow.
My guess is proxy prevents specifically the ssh-client from doing http requests. Is it so?
If it is so – how does proxy distinguish ssh-client from other programs? Can it distinguish a request sent from ssh-client and a request from another program?
And what are common ways for "masking ssh-client to another program" (or other ways to pass by the proxy)?
PS It would be awesome if someone wrote the address of a free ssh-server open for testing ssh-tunneling and other stuff in the comments. (Usually ssh-servers don't allow tunneling for free.)