Nat – Reaching Local Network which is under NAT with no public IP

internetnat;routingvpn

I have a place called (lets say) REMOTE. REMOTE is connected to the Internet using 3G/4G Modem + Router. Unfortunately my mobile Internet provider does not give me public IP address. In REMOTE I have a few devices I want to access from HOME. Not all of them are personal computers (there is a print server, video recorder etc), so I'm not able to install software on all of them. I have at least one computer that can be used as a gateway.

I also have a server running linux with public IP and quite fast internet connection.

At HOME I've got the same situation as in REMOTE.

I want to be able to somehow access devices in REMOTE from HOME.
How can I do that?

Best Answer

if you do have a public server there is a number of ways to achieve what you want.

  1. easiest solution is to use SSH tunnels. But you need to have a one time access from REMOTE to setup the tunnel. using the command:

    ssh you@your-public-server.org -N -o TCPKeepAlive -R 12321:ip-of-remote:22

    then everytime you connect from HOME to your-public-server.org at port 12321 you'll actually be presented with a login from the linux gateway you have at REMOTE.

    Through the later ssh connection (between HOME and REMOTE) you can forward anything using ssh -L flag. to name a few the webpage of your print server, grab a remote desktop session etc.

  2. as a more permanent solution you could consider a VPN solution, where the vpn server would still be set up in your public server and REMOTE (and perhaps HOME, too) would connect to. Then all vpn clients can be thought of as part of a common intranet where they can talk to each other directly.

Related Topic