I have two machines on my network with IPs of
192.168.1.3(Client). In the Server, there is an HTTP server running on the
lo interface on port 8080 (127.0.0.1:8080) which only can be accessed by local users. I want to forward that port to the Client. The only way I found is by through an SSH tunnel.
ssh -L 8080:127.0.0.1:8080 email@example.com -N -vv
For this process, I needed to have the password or the private key of that user. Is there an alternative way to make such a tunnel without using the SSH utility assuming that I
don't have any kind of credentials but do
have access to execute commands on the server? My final goal is to be able to connect to the HTTP server on the at
192.168.1.2 from the client as localhost.
I found a tool called chisel that let me do exactly what I wanted to do.
For this you will have to have some kind of a way to execute commands. I was able to upload the executable file to the server and work with it.
chisel server --reverse --port 9001 # Client side
This will start a reverse proxy and listen on port 9001 for any connections on the client side.
chisel client 192.168.1.3:9001 R:8080:127.0.0.1:8080 # Server side
By executing this, a connection will be made to the server at the client side and forward the traffic for the specified port(in this case 8080) to the server at the server side.
GNU netcat has this functionality built-in:
nc -L localhost:8080 -p 9001
It seems like the simplest solution that gets the job done.