How to create the ability for a browser session to access another browser session like team viewer?

Hello all,
Forgive me please, I am not at all familiar with the correct terms (feel free to tell me!). I need to create something that will all a remote computer to connect to a RPi that is behind a router/firewall, similarly to what Team Viewer does.

My scenario is I have a customer in one building that is physically separated from another building. Each has their own internet connection, router, firewall etc. In a LAN situation, all he would need to do is type in the IP and the port to connect to a Web App. However, since this is a physically different location, and they refuse to do any port forwarding, I need to come up with another solution.

Can anyone suggest a way to work through this? Also, what are these kinds of things called?

Thank you!


for the networking issue, look at something like ZeroTier.

Could you elaborate on what you need to view/manipulate, is it the desktop of the RPi and there by the web client its running? Or do you need to be able to “web” in to the building that the RPi is in so you can navigate to the page the RPi is navigating to? Or something else?

Ah I missed the web app part. So you have a RPi with a web app on that you want to have external access to?

The simplest and most secure way would be to set up a vpn between the two sites. If this was a security issue for them, they could then only allow access to that RPi over the VPN or access to just what web app on the RPi.

If they don’t want to do that, if they have a web facing machine in the building with the RPi in you could proxy/forward through that to the RPi’s web app. You would then access you RRi’s web app through that web proxy keeping your RPi secure from other traffic.

If they don’t want to do that, you have the hamachi/zero tier option which could be bad as it could circumvent any security they have in place and essentially link the two networks/buildings together.

If they don’t want to do that, your RPi app could connect out to an externally hosted web app that you write which will allow web access to anyone on the internet. Your RPi would also connect to this web app and you use whatever system you feel like to link the two connections, the easiest would probably be a database to store commands which you send in, and the RPi periodically checks, executes and returns data for your client to poll and display. This would probably be the least involved to set up as it would use https versus doing it with something like ssh.