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? 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? 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. 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.