I have multiple devices that are all behind a private network. I have a WAN facing server that I can call into. Is there any way for me to be able to send an HTTP request through the WAN server to a specific device behind the network? I have been looking at a reverse proxy and I think I am on the right track but as I have many devices that will be changing in and out I am not sure what the best way of doing that would be. Thanks for any help in advance.
-
Why aren't you using IPv6? – Michael Hampton May 3 '18 at 19:31
-
The devices aren't connected to the WAN. I should have clarified that. – zlb323 May 3 '18 at 20:07
-
If they aren't connected to the network, how to you propose to reach them at all? – Michael Hampton May 3 '18 at 20:09
-
I was hoping to have some sort of redirect from the server that is connected to the network in order to delegate where each http request goes. – zlb323 May 3 '18 at 20:39
-
I think one of us has missed something. You simply cannot reach airgapped machines at all. A reverse proxy cannot help you with this. You will have to connect them to the network somehow before you can reach them by any method. – Michael Hampton May 3 '18 at 20:44
You can use a reverse proxy to receive connections on a pre-defined port on the WAN interface and it will open new connections to the machines in the internal network (provided the WAN-connected server is dual-homed, that is, also has a connection to the internal network).
You could specify that TCP port 10000 will be forwarded to internal machine A, TCP port 10001 to machine B and so on.
For example, using a tool like socat:
socat TCP4-LISTEN:10000,fork TCP4:machineA,10000
socat TCP4-LISTEN:10001,fork TCP4:machineB,10000
socat TCP4-LISTEN:10002,fork TCP4:machineC,10000
...
You could also use HAProxy, nginx and any other reverse proxy server to do this. The internal machines will get TCP connections that terminate on the reverse proxy.