Raspberry Pi Connect - Raspberry Pi

Raspberry Pi Connect

Today we’re pleased to announce the beta release of Raspberry Pi Connect: a secure and easy-to-use way to access your Raspberry Pi remotely, from anywhere on the planet, using just a web browser.

It’s often extremely useful to be able to access your Raspberry Pi’s desktop remotely. There are a number of technologies which can be used to do this, including VNC, and of course the X protocol itself. But they can be hard to configure, particularly when you are attempting to access a machine on a different local network; and of course with the transition to Wayland in Raspberry Pi OS Bookworm, classic X remote desktop support is no longer available.

We wanted to be able to provide you with this functionality with our usual “it just works” approach. Enter Raspberry Pi Connect.

How do I get Raspberry Pi Connect?

First of all, Raspberry Pi Connect needs your Raspberry Pi to be running a 64-bit distribution of Raspberry Pi OS Bookworm that uses the Wayland window server. This in turn means that, for now, you’ll need a Raspberry Pi 5, Raspberry Pi 4, or Raspberry Pi 400.

Assuming you’re using one of these models, make sure you have the latest Raspberry Pi OS Bookworm from Raspberry Pi Imager, open a terminal, and enter:

sudo apt update
sudo apt upgrade
sudo apt install rpi-connect

Now reboot your Raspberry Pi, and you’ll find a new icon in your system tray at the top right of your screen. Click this icon and choose “Sign in” to get started. Hopefully you’ll find the instructions easy enough to follow, but if you need it, there’s extra documentation that covers known limitations during the beta.

What happens under the hood?

I asked Paul Mucur, who runs web development at Raspberry Pi, to explain how the underlying technology works:

When you use Raspberry Pi Connect from a web browser to connect to your Raspberry Pi device, we establish a secure peer-to-peer connection between the two using WebRTC: the same real-time communication technology that underpins the in-browser clients for Zoom, Slack, Microsoft Teams, and Google Meet.

Our “rpi-connect” daemon for Raspberry Pi OS is responsible for listening out for new screen sharing sessions from the Raspberry Pi Connect website, and negotiating the best possible (i.e. lowest latency) connection between the in-browser VNC client and a VNC server running on your device. In general, once a connection is established, no traffic need pass through our servers.

If for any reason it is not possible to establish a direct connection between your browser and Raspberry Pi device, rpi-connect and your browser may instead opt to securely relay traffic through our servers, encrypting it with DTLS.

Peer-to-peer and relayed connections

At the moment, the Raspberry Pi Connect service has just a single relay (TURN) server, located in the UK. This means that if rpi-connect chooses to relay traffic, the latency can be quite high. Hovering over the padlock icon in your browser while connected will reveal whether your connection is being relayed or not, so you can tell whether changes to your networking setup might improve connectivity.

Our intention is that Raspberry Pi Connect will remain free (as in beer) for individual users with non-relayed connections, with no limit on the number of devices. We don’t yet know how many people will need to relay their traffic through our TURN servers; we’ll keep an eye on the use of bandwidth and decide how to treat these connections in future.

As I said at the beginning, Raspberry Pi Connect is in beta at the moment, so please bear in mind that you might come across the occasional limitation or imperfection. We think lots of people will find it useful, and we hope you like the sound of it enough to follow the instructions above or in the Connect documentation to install it and try it out. You can let us know what you think in the Raspberry Pi Connect section of our forums.

67 comments
Jump to the comment form

Pierce Kitfield avatar

This is great work guys keep it up.

Reply to Pierce Kitfield

Gordon Hollingworth avatar

Twelve years and counting…

Reply to Gordon Hollingworth

NTN avatar

12 years full of amazing things! :)

Reply to NTN

Beetle avatar

Installed, but when accessing the rpi5 with Microsoft remote desktop no connect icon is shown. Connected to rpi5 via Tiger VNC the icon is shown, but on clicking the sign on nothing happens. No monitor to hand to see if it works when a monitor is directly connected. :-(

Reply to Beetle

Paul avatar

If you have SSH access to your Raspberry Pi device, you could try signing in via the rpi-connect CLI.

We also pushed a 1.0.1 version earlier to workaround an issue where your browser might not have automatically opened when you clicked “Sign in” from the system tray icon if the Wayland display wasn’t available when the rpi-connect service started.

Please try upgrading with the following:

sudo apt update
sudo apt install --only-upgrade rpi-connect
sudo reboot

Reply to Paul

Stephan Ditz avatar

Thanks a lot, Paul, for the great tool and service. I have tried it locally on my network on Mac and iPad and remotely from my mum´s house, and it is working perfectly. One wish from me: Please add a news section in the forum where changes are described on new versions, i.e. now 1.0.2.

Reply to Stephan Ditz

Luke Stanley avatar

This is great but I usually use SSH. I assume that accessing the Pi via SSH outside of the local network isn’t supported yet by Pi Connect? SSH is the way I control my Pi the most! It would be ideal if Pi Connect could provide an external SSH relay subdomain, perhaps also configured from Pi Imager, to allow secure remote SSH access. Could this be on the cards? This would be amazing.

Setting up Pi Connect requires manual login on the device, right? Instead, it would also be great if Pi Imager offered an option to preconfigure Pi Connect, such as credentials for it, like with WiFi and SSH options. Making remote desktop access work right away from the first boot would be amazing too. I often have a headless setup with VNC, so right now I would have to use SSH and VNC over LAN for the initial configuration. I think an pre-configurable (but random – or maybe paid) SSH subdomain from Pi Imager would be most impacting. It could be dressed up as an identifier for Pi Connect too, so visual or text interfaces could be used easily in an easy to learn and communicate way also. Anyhow, great to see this new feature!

Reply to Luke Stanley

Gordon Hollingworth avatar
Luke Stanley avatar

Awesome! Looking forward to SSH support!

Reply to Luke Stanley

Farzad avatar

Looking forward to ssh support : )

Reply to Farzad

Sachu avatar

Please make SSH happen. You guys rock!

Reply to Sachu

Shmoe avatar

You should look at tailscale man, it’s freaking amazing. If you’re old school and remember Hamachi – think of that but way better.

Reply to Shmoe

Luke Stanley avatar

Thanks, I do know about Tailscale. They sign me out a lot, which disconnected my Pi from my reach, this is not helpful when I’m away and couldn’t access my Pi any other way. More reliable choices, especially from Raspberry Pi are very welcome!

Reply to Luke Stanley

Max avatar

We provide free web terminal access to Raspberry Pis on PiCockpit – only the browser is needed (and Picockpit client on the Pi). It’s free for up to 5 Pis.

Reply to Max

Shmoe avatar

Definitely take a look at tailscale man.

Reply to Shmoe

Esteban avatar

Hi, ¿this service is equivalent to teamviewer, in the sense that can go throug NAT with zero config?, or ¿does I need to open ports in my router to work correctly?

Reply to Esteban

Gordon Hollingworth avatar

You don’t need to do anything special… Best way to think of it is you’re having a Hangout with your computer… It’s basically the same technology!

Reply to Gordon Hollingworth

Zach Patmore avatar

Hey there,
I have a raspberry pi 5, running ubuntu desktop, do you think this could work on there as it is another Linux distro?

Reply to Zach Patmore

Gordon Hollingworth avatar

It should be possible to install the deb file onto Ubuntu…

Reply to Gordon Hollingworth

Marc avatar

Where can we get the .deb file? I want to try it on ubuntu.
Looks like a very nice tool!

Reply to Marc

Bunnisher avatar

Really Awesome Job!!!! Thank you so much!!!!

Reply to Bunnisher

beetle avatar

Managed to get it working via command line. Looks good, but… It seems each time the rpi is rebooted a new token is required which is given by the rpi box itself. If one is remote and the pi reboots perhaps due to a power cut then how to re-connect for a remote place without access to the pi to set a ‘new’ device via connect.raspberrypi.com ??

Reply to beetle

Gordon Hollingworth avatar

That doesn’t sound right, it should just log in everytime (as long as the user is auto logged in…)
Best go ask in the Raspberry Pi Connect forum…

Reply to Gordon Hollingworth

Flxtr avatar

Hey, that sounds great!

Can I host my own relay server or is it planned for the future? My use case: a bunch of PIs in a private network without direct internet access. Would be great if I could host my own relay server in that Network (wich has inet access) for remote maintenance.

Keep it up!

Reply to Flxtr

Gordon Hollingworth avatar

If you’ve got a private network then you should just be able to use WayVNC directly without having to go through the internet.

Reply to Gordon Hollingworth

Mike avatar

When I try to install the package it errors out that the package can’t be found. Any ideas?

Reply to Mike

Gordon Hollingworth avatar

Add a post in the forums

Reply to Gordon Hollingworth

Norman Morales avatar

Great, I will install and test it now :D

Reply to Norman Morales

Vitaly Greck avatar

$ sudo apt install rpi-connect
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
wayvnc:arm64 : Depends: libaml0:arm64 (>= 0.3.0) but it is not going to be installed
Depends: libc6:arm64 (>= 2.34) but it is not going to be installed
Depends: libdrm2:arm64 (>= 2.4.75) but it is not going to be installed
Depends: libgbm1:arm64 (>= 17.1.0~rc2) but it is not going to be installed
Depends: libjansson4:arm64 (>= 2.14) but it is not going to be installed
Depends: libneatvnc0:arm64 (>= 0.9.0+dfsg) but it is not going to be installed
Depends: libpam0g:arm64 (>= 0.99.7.1) but it is not going to be installed
Depends: libpixman-1-0:arm64 (>= 0.25.2) but it is not going to be installed
Depends: libwayland-client0:arm64 (>= 1.20.0) but it is not going to be installed
Depends: libxkbcommon0:arm64 (>= 1.0.0) but it is not going to be installed
Depends: python3:arm64 but it is not going to be installed
Depends: raspi-config:arm64 but it is not installable
E: Unable to correct problems, you have held broken packages.

Reply to Vitaly Greck

Shift avatar

I think you’re trying to install it in the 32-bit release of Raspberry Pi OS rather than the 64-bit one.

Reply to Shift

beta-tester avatar

if i want to connect from internet/external network to my Raspberry Pi at home, what ports do i have to open and forward in the firewall/router?

Reply to beta-tester

xeny avatar

None – that is the beauty of it.

Reply to xeny

Kevin McAleer avatar

Love this!
Gordon – how do I get to be on the alpha or pre-release list for such things, I would loved to have been included in the launch of this along with Jeff!

Reply to Kevin McAleer

Gordon Hollingworth avatar

If you fill in the form in the beta forum you can get access to software products early

Reply to Gordon Hollingworth

Karagir avatar

These applications modules like the ‘Hotspot’ and now ‘Connect’ are such good enhancements to the platform and make life so easy. Thank you and keep it up!
I hope some day I will get an application module that will help in setting up a RPi for Multi-room audio streaming.

Reply to Karagir

Les Adams avatar

I’ve been using minidlna on an RP5 for multi room streaming of both audio and video. Works great with minimal overhead. Combining this with NAS functionality works great.

Reply to Les Adams

ai avatar

what email address do we use when creating a raspberry pi id? do we use @rasberrypi.com when creating the raspberry pi id or can we use other email like @gmail .com and @outlook.com.

Reply to ai

bsimmo avatar

You use *your* email address, any that you can receive emails from.

Reply to bsimmo

bwta-tester avatar

instead of the server on London, can i run my own server for my rpi-connect’ions? i have already an https server running on my RPi, that i can access from the internet. so it would be nice if i could be independend from the server in London to get rpi-connections running from the internet.

Reply to bwta-tester

Mateo A avatar

Are you planning to open-source this software in the future?

Reply to Mateo A

Brian avatar

I think the only concern is how can we know that at a later point it won’t be switched to a paid service? Otherwise how can you offer it for free? Love everything you guys do!

Reply to Brian

Bsimmo avatar

You cannot, as with everything you have to take them on their word and current plan.
They already mention that if it is not a p2p connection and goes via them, they may look at charging. I guess costs to keep it going and the servers running.

But this is beta testing at the moment, finding bugs, seeing how it scales. Report back any problems.
Or how excellent you find it.
Join on and find out.

Reply to Bsimmo

Chris avatar

Absolutely brilliant! I have 12 rpis running long term tests for my client products. Now I can easily monitor from anywhere in the world.

Reply to Chris

Chris avatar

When I click to “sign in” I get a quick flash screen I can see and nothing. RPI5

Reply to Chris

Bsimmo avatar

Use the link in the blog to get to the forum and report back your problems and what you find.
There was a newer version that had a fix for something like that, but with the date you should already be on that.

You will probably need to run the logging command. Don’t try the command line setup just yet as it does fix the bug.

It is ‘beta’ and work in progress.

Reply to Bsimmo

Claude Pageau avatar

Personally I use app.remote.it to access my remote machines using ssh, vnc, Etc. (works on older RPI’s 32 or 64 bit. plus windows and other unix distros). Personal use is free per fair use policy. Been using this for several years without charge (less than 5 devices on occassional basis. I can access my devices using web browser or client interface.
Never had a problem accessing my remote devices across multiple NAT networks. Install is via a curl script and must be done locally for initial setup.
Regards.

Reply to Claude Pageau

Radek SP9RF avatar

Great job! Buying RPi5 was a good decision. More software and more updates, please!

Reply to Radek SP9RF

Warren avatar

Can’t get it to work. From the webpage it says last seen less than a minute ago. I click connect, and “Checking Network Conditions.” then “Waiting for response from …” and finally “Timed out connecting to …”

Reply to Warren

Paul avatar

Please post in the forums sharing any relevant output from the logs where we can help further.

You might be able to run rpi-connect but the dedicated WayVNC server will only work if you’re using a supported Wayland compositor (commonly Wayfire or labwc) and desktop (e.g. Raspberry Pi Desktop).

Reply to Paul

Speedy-10 avatar

Raspberry 3b ?
Hi , I’m using a raspi 3b with new installation of raspbian 6.6.28
When will pi-connect be available for this older pi?
Regards

Reply to Speedy-10

Bsimmo avatar

There was a brief test for older Pre Pi4 series and 32 bit setups.
But it is harder and not as good in use I guess (at the moment).
It needs Bookworm and Wayland (or some version based on Wayland, there is a new one in testing).
The 1GB or less Pi’s struggle when Wayland is used for the desktop.

You may be able to try it for yourself, get 64bit Bookworm, it’ll be in the other RPi OSs in Pi Imager, turn Wayland desktop on and install connect, see how it works for you.

Reply to Bsimmo

Christian avatar

Hi Gordon, I wanted to thank you for the service you are giving us and at the same time suggest improvements. Today we have screens with a 16:9 aspect ratio and almost exclusively portable, i.e. small screens, are sold.

Having two horizontal bars reduces the useful surface area on the screen, you could opt for a vertical and a horizontal bar, or better yet, move the 5 buttons on the main bar. If you could then switch the browser to full-screen it would be great, but for that you just need to press a button.

Reply to Christian

K avatar

How do you configure this headless?

Reply to K

Juan avatar

This is awesome! Thanks for creating Raspberry Pi Connect.

I’m trying to see a Pi Camera remotely and I find a lot of lag (I guess low FPS). Do you know what might be happening? I’d like to troubleshoot the issue and fix it.

Reply to Juan

thehasaint avatar

Worked first time although it seems each time the rpi is rebooted a new token is required.
Unable to sign in from the drop down menu now.
rpi-connect signin returns an error “The Connect API returned an error”. Any possible fix for this?

Reply to thehasaint

thehasaint avatar

Unable to sign in from the drop down after installation. The command “rpi-connect sigin” gives out the error message “The Connect API returned an error”. This happened after rebooting after initially installing rpi connect yesterday, worked well that time.

Reply to thehasaint

DJai avatar

Tried to install it on my RPI5, but get this messages and can’t get it installed :s

sudo apt install rpi-connect
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
wayvnc : Conflicts: wayvnc:arm64 but 0.9.0~dev-1 is to be installed
wayvnc:arm64 : Depends: libaml0:arm64 (>= 0.3.0) but it is not going to be installed
Depends: libc6:arm64 (>= 2.34) but it is not going to be installed
Depends: libdrm2:arm64 (>= 2.4.75) but it is not installable
Depends: libgbm1:arm64 (>= 17.1.0~rc2) but it is not going to be installed
Depends: libjansson4:arm64 (>= 2.14) but it is not installable
Depends: libneatvnc0:arm64 (>= 0.9.0+dfsg) but it is not going to be installed
Depends: libpam0g:arm64 (>= 0.99.7.1) but it is not going to be installed
Depends: libpixman-1-0:arm64 (>= 0.25.2) but it is not going to be installed
Depends: libwayland-client0:arm64 (>= 1.20.0) but it is not going to be installed
Depends: libxkbcommon0:arm64 (>= 1.0.0) but it is not installable
Depends: python3:arm64 but it is not installable
Depends: raspi-config:arm64 but it is not installable
Conflicts: wayvnc but 0.9.0~dev-1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Reply to DJai

DJai avatar

that was the problem.
Thank you very much

Reply to DJai

Ben avatar

I’m unable to install this on my Raspberry Pi 4, when I run the install command I get the error Unable to locate package rpi-connect

Reply to Ben

knudmand avatar

I have samme issue…
Any got fix?

Reply to knudmand

russ avatar

Fantastic – now just get it to transport audio too and I can remote to my Pi from work PC over lunch to watch youtube.

Reply to russ

JPW avatar

Tried this the other day on a 2GB Pi4 – works really well. Well done!
Do you have plans to expand upon this service – to provide SSH tunnels , VPN access etc?

Reply to JPW

someone who codes avatar

no keyboard pops up when I open it on phone, I literally cant type anything….
also it signs out after reboot…

Reply to someone who codes

Colin avatar

Yes, that feature would be useful

Reply to Colin

Anders J avatar

Do it support IPv6? IPv6 will solve many issues with NAT and stuff like that.
Yours.

Reply to Anders J

Joseph Horvath avatar

First of all. Thank you for your effort, time and hard work to find a good solution for the community. I have tried it.
On phone: there is very hard to use – because the lack of keyboard. And hard to find how to use or simulate the right and left mouse clicks.
On the laptop: Inside my network connected very nice – it was slow, but works fine. Outside of the network about 100 times I tried only one!!! was successful connection.
Thank you,
Best regards
j

Reply to Joseph Horvath

Leave a Comment