I've to manage 50 Raspberry Pis remotely, e.g. via VNC over the web. The RPis are behind a router, so I can't access them by IP.

I'm looking for something like a self-hosted TeamViewer.

The desired setup would be something like:

  1. Server reachable via vnc.mydomain.tld, acting as a middleman
  2. Server on the RPi
  3. Viewer on my local machine

Desired process (scripted with Python)

  1. I send a message (MQTT) to the RPi that I want to control:

    "Hey RPi, please start your VNC server and let me know how I can find you!"

  2. RPi starts its server, makes it accessible via the middleman and returns the session information via MQTT to me:

    "Hey Admin, VNC started. You can find me via: xxxxxx"

  3. I ask the middleman to connect me:

    "Hey middleman, connect me to RPi. Credentials: xxxxxx"

  4. I send a message (MQTT) to the RPi that I just controlled:

    "Please stop your VNC server"

  5. RPi stops its server

Edit: I'm not allowed to touch the router.

Any (alternate) ideas?

  • Comments are not for extended discussion; this conversation has been moved to chat. – goldilocks Aug 9 '18 at 11:05
  • You can use different ports for each pi, however i do not know how to set this up – The Coding Clan Aug 16 '19 at 12:37

As I understand you just want want a remote controllable Raspberry Pi via screen without port forwarding or any other stuff to setup. (Correct me if I am wrong or something is missing!)

Personally I am using Anydesk for remote controlling my RPI 3b+ it is free for personal use and you can set your own restrictions on who can connect and or set a password.

You can add all Computers or other Machines via a Anydesk-ID and if they are up and running you can connect to them on your client computer from everywhere only requirement is a decent internet connection!

It has several other advantages I can talk about but the key advantage is its simple use!

Hope I could help!

| improve this answer | |

Manage 50 Raspberry Pis remotely, The RPis are behind a router, so I can't access them by IP.

I manage less than 50, and wouldn't go the VNC route. 50x the whole process you described above just seems daunting, and lots of work/lost time, and then you haven't even started doing what you came for.....

Look into automatisation. Chef would be a nice solution for this(https://learn.chef.io/demos#/).

You just have to set this up and keep the play or cookbooks updated. Need to edit 50 conf files, install Apache 50 times, no worries, just edit your cookbook and be done with it...

| improve this answer | |

A good alternative to TeamViewer that is specifically made for Raspberry Pi's is Dataplicity. It's free for a single pi and a few dollars a month per pi after that. Note that this product handles bypassing NAT, assigning a domain name to your Pi and providing a terminal window but if you want a remote desktop type connection you'll have to add port forwarding through it.

(Disclaimer: I have no connection with dataplicity, I'm just a user)

| improve this answer | |

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.