- A is my laptop, at home.
- B is a server (AWS instance) under my control.
- C is a machine on my work network (no externally visible IP address) and it runs a VNC server, or NoMachine, or similar. The machine is under my full control but let's assume the work network isn't.
This is not going to be a question about connecting A->C
via a straightforward A->B->C
tunnel as in multiple other postings; rather, it aims to achieve A->C
via A->B<-C
. Both A and C can connect to B via ssh, but B cannot initiate a connection to C (or to A for that matter).
How can I initiate connections from C to B (before I leave work), and also A to B (when I get home), such that C's VNC service becomes accessible to A?
Basically this is a homebrew attempt to replace TeamViewer/LogMeIn/AnyDesk without (1) paying ridiculously high license fees, or (2) needing to have an internet-exposed IP address for the target machine C. (Suggestions for alternative Mac- + Windows- compatible solutions are welcome if this is an XY problem, but so far I have not found a third-party solution that avoids both issues.)