As described in my previous blog post, I'm running my web scraping service on a Raspberry Pi, at my home. Thanks to the trick with port forwarding, my Raspberry acts as a real server machine, and I can run my service on it, for a fraction of a cost of a real server. But as with every server, I also need to access it remotely, to install updates, check logs, or just to see if it's still running. Also, because it runs a web scraping service, I need to see the browser window, to see if the pages are rendered correctly. This means I cannot simply connect to it via SSH, I need to see the desktop, and I need to be able to access it from anywhere in the world.
My Raspberry runs on Ubuntu Linux and hence I decided to use VNC to connect to it. VNC is a remote desktop software, which allows you to see the desktop of a remote machine, and interact with it, as if you were sitting in front of it. I could already connect to my Pi via VNC locally, just using it local IP address, but I wanted to connect to it from anywhere in the world.
Here, also port forwarding comes to the rescue. Just like my web scraping service running on the same device, VNC is - technically - just another server which listens on a specific port, and waits for incoming connections. While web servers typically listen on port 80 or 8080, VNC servers listen on port 5900. So I just had to run another SSH command on my Raspberry, which connects to my remote AWS host and tells it to forward all traffic from port 5900 to the Raspberry Pi, also port 5900.
Thanks to InstaHost, I can easily customize the subdomain for my Raspberry Pi, and hence I can connect to my little computer from anywhere in the world using as simple URL as roberts-raspberry.instahost.dev:5900. Another very important thing, when exposing any device to the Internet, is security. I've set up a strong password for the VNC connection, and if you're going to expose some of your home PCs, devices or services to the Internet, I strongly recommend you to do the same.
I also did the same with my wife's laptop running Ubuntu, as I wanted to be able to connect to it remotely and check if my services
are running fine. I'm pretty sure this will work with a Windows machine, or a Mac as well. Haven't tried it yet, but there are
VNC servers for both platforms as well (TigerVNC, and few more, in fact, I don't own a Mac hence cannot prove it, but if my
ChatGPT isn't hallucinating, MacOS has a built-in VNC server called "Screen Sharing"), and the concept of port forwarding
works exactly the same, no matter the operating system, so I don't see why it wouldn't work.
I might give it a try one day and make another blog post about it.
I encourage you to give it a try as well, and let me know how it went!
Just don't expect it will let you play your Windows games
remotely, VNC has quite some lag 😊
Overall, it feels like there's a lot of potential with this technology, which I'd like to explore - that's why I created InstaHost. Any service you can run at home can be easily taken to the Internet, for free. Web server, remote desktop, file server, game server, you name it. I'm going to experiment with different services and see how it goes, so expect more blog posts about it soon!
Check out our blog for more examples of how you can benefit using InstaHost
Please enter your registered email address, we’ll send you a link to reset your password.
Check your e-mail for instructions on how to reset your password.
For extra security please create a separate password for your user account
You can now use your new password to log in to your account
Subscription processed successfully!