I am searching for a generic reverse tunnel application. Here is what I have in mind: It would consist of an inside (behind nat) and outside part. The "inside" part would try to establish a connection to the "outside" part automatically. The "outside" part could accept connetions and since it has a connection to "inside" it could tunnel all the communication to the "inside" part which in turn could connect to any server behind the nat.
This seems to be such a simple concept, is there an app doing this?