Access your Raspberry Pi from the Web

Make your Raspberry Pi accessible from anywhere via the Yaler relay.

Prerequisites

Setting up your device requires a relay domain. Please sign up to get one.

Setting up the hardware

Make sure the Raspberry Pi is connected to the Internet via Ethernet, Wi-Fi or 3G.

Installing YalerTunnel on Raspbian

Follow these steps to install YalerTunnel on the Raspberry Pi.

  1. Open a shell on your Raspberry Pi (default login is pi, password raspberry), or type
    $ cd ~
  2. Update apt-get with
    $ sudo apt-get update
  3. Download and install libssl with
    $ sudo apt-get install libssl-dev
  4. Create a yalertunnel directory
    $ mkdir yalertunnel
    $ cd yalertunnel
  5. Download, unzip and build the YalerTunnel source
    $ wget http://s3.yaler.net/yalertunnel/YalerTunnel2.src.tar.gz
    $ tar xfzmv YalerTunnel2.src.tar.gz
    $ ./configure && make
  6. To check the installation, display the YalerTunnel version and usage with
    $ ./yalertunnel
  7. Done. Now either enable Web access or SSH access or VNC access.


Web access

Prerequisites

A Web server or service has been installed and is running on the Raspberry Pi.

Enabling Web access on Raspbian

How to configure YalerTunnel on your Raspberry Pi to make a local Web service accessible from anywhere.

  1. Download and install runit with
    $ sudo apt-get install runit
  2. Create a yalertunnel service directory
    $ sudo mkdir /etc/service/yalertunnel
    $ cd /etc/service/yalertunnel
  3. Download the yalertunnel run script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/run
    $ sudo chmod a+x run
  4. Download the yalertunnel finish script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/finish
    $ sudo chmod a+x finish
  5. Open the run script with
    $ sudo nano /etc/service/yalertunnel/run
    Check the path (default: /home/pi/yalertunnel), set the port of the local Web service (default: 80), and set your relay domain
    1 #!/bin/sh
    
    6 exec /home/pi/yalertunnel/yalertunnel server 127.0.0.1:80 try.yaler.io:80 RELAY_DOMAIN -min-listeners 1 </dev/null 2>&1 | logger -t yalertunnel

    Save changes with CTRL-X, then Y, then RETURN. Do not change the local IP (default: 127.0.0.1), unless the Web service runs on a separate device in the same network.

  6. Reboot your Raspberry Pi to run the script
    $ sudo reboot
  7. Done. Now access your device from any Web browser or with Curl or from iOS or from Android (and resolve errors).

Disabling Web access on Raspbian

How to remove YalerTunnel to disable Web access from anywhere.

  1. Open a shell on your Raspberry Pi and type
    $ sudo sv stop yalertunnel
    $ sudo rm -r /etc/service/yalertunnel
    $ sudo reboot


SSH access

Prerequisites

The SSH daemon sshd is running on the Raspberry Pi.

To enable sshd on Raspbian, add a file called ssh to the /boot/ directory of the SD card or use raspi-config.

Enabling SSH access on Raspbian

How to configure YalerTunnel on your Raspberry Pi to allow SSH access from anywhere.

  1. Download and install runit with
    $ sudo apt-get install runit
  2. Create a yalertunnel-ssh service directory
    $ sudo mkdir /etc/service/yalertunnel-ssh
    $ cd /etc/service/yalertunnel-ssh
  3. Download the yalertunnel run script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/run-ssh -O run
    $ sudo chmod a+x run
  4. Download the yalertunnel finish script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/finish
    $ sudo chmod a+x finish
  5. Open the run script with
    $ sudo nano /etc/service/yalertunnel-ssh/run
    Check the path (default: /home/pi/yalertunnel), set the port of the local SSH service (default: 22), and set your relay domain
    1 #!/bin/sh
    
    6 exec /home/pi/yalertunnel/yalertunnel proxy 127.0.0.1:22 try.yaler.io:80 RELAY_DOMAIN </dev/null 2>&1 | logger -t yalertunnel-ssh

    Save changes with CTRL-X, then Y, then RETURN. Do not change the local IP (default: 127.0.0.1), unless the SSH service runs on a separate device in the same network.

  6. Reboot your Raspberry Pi to run the script
    $ sudo reboot
  7. Done. Now access your device with Putty or with SSH (for Linux, Mac OS X).

Disabling SSH access on Raspbian

How to remove YalerTunnel to disable SSH access from anywhere.

  1. Open a shell on your Raspberry Pi and type
    $ sudo sv stop yalertunnel-ssh
    $ sudo rm -r /etc/service/yalertunnel-ssh
    $ sudo reboot


VNC access

Prerequisites

A VNC service has been installed and is running on the Raspberry Pi.

Enabling VNC access on Raspbian

How to configure YalerTunnel on your Raspberry Pi to allow VNC access from anywhere.

  1. Download and install runit with
    $ sudo apt-get install runit
  2. Create a yalertunnel-vnc service directory
    $ sudo mkdir /etc/service/yalertunnel-vnc
    $ cd /etc/service/yalertunnel-vnc
  3. Download the yalertunnel run script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/run-vnc -O run
    $ sudo chmod a+x run
  4. Download the yalertunnel finish script and make it executable
    $ sudo wget http://s3.yaler.net/raspi/finish
    $ sudo chmod a+x finish
  5. Open the run script with
    $ sudo nano /etc/service/yalertunnel-vnc/run
    Check the path (default: /home/pi/yalertunnel), set the port of the local VNC service (default: 5901), and set your relay domain
    1 #!/bin/sh
    
    6 exec /home/pi/yalertunnel/yalertunnel proxy 127.0.0.1:5901 try.yaler.io:80 RELAY_DOMAIN </dev/null 2>&1 | logger -t yalertunnel-vnc

    Save changes with CTRL-X, then Y, then RETURN. Do not change the local IP (default: 127.0.0.1), unless the VNC service runs on a separate device in the same network.

  6. Reboot your Raspberry Pi to run the script
    $ sudo reboot
  7. Done. Now, see how to access your device with VNC.

Disabling VNC access on Raspbian

How to remove YalerTunnel to disable VNC access from anywhere.

  1. Open a shell on your Raspberry Pi and type
    $ sudo sv stop yalertunnel-vnc
    $ sudo rm -r /etc/service/yalertunnel-vnc
    $ sudo reboot


Troubleshooting

How to fix common issues.


To enable Web and SSH or VNC access at the same time, or tunnel another protocol, please get in touch.


Creative Commons License This work by Yaler GmbH is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.