for simplicity ill give my servers name, server-A, server-B
server-A- a simple server with public IP, this server is 1G ram, shared CPUserver-B- a more robust server with more ram, cpu cores etc..., but it does not have public IP, it goes through a router that I have no access to, so I cant do port forwarding for that server
I want to run a service on server-B so people will be able to connect to it, and the heavy calculations of that service will run on server-B
because I cant do port forwarding to server-B I am wondering if there is any network service that I can do something like reverse shell, server-B will be the one to initiate the connection to server-A and create a tunnel, then server-A will forward traffic to the tunnel initiated by server-B
at the end, people will connect to server-A on some port (8080 for example), server-A will take that request and forward it to server-B with a tunnel they share
is it possible
note
they are not in the same LAN, they are in completely different locations, server-B can reach directly to server-A with the internet, but server-A cant reach server-B directly