P2P Software Defined Networking (ZeroTier) on PINE64 ARM Board (Debian)

ZeroTier is a software defined encrypted P2P networking solution allowing you to connect all your devices together with a virtual network. It’s like plugging devices all into your home router but the devices could be anywhere in the world.

PINE64 is similar to a Raspberry Pi. An ARM based board with GPIO and cheap!

I’ve got a file/media server running at home which I can access over ZeroTier from my phone, laptop and desktop they all appear as if it’s on the same network. Now I’m wanting to add the PINE64 and a Raspberry Pi to the mix for some electronics and ARM hackery.

There’s a build of ZeroTier available from their website that the Raspberry Pi will run but not the Pine. Luckily ZeroTier is open source software and it’s super easy to build yourself.

Install Build Tools

On the PINE64 I’m running Debian, this guide should work with any derivative including the Ubuntu images available for the device.

Open up a Terminal and run the following to install the tooling required to download the source code, and compile the program.

$ apt-get install build-essential git

Build ZeroTier & Install

Again in Terminal run the following to build the software and install…

# Download the ZeroTier source code and enter the directory
$ git clone https://github.com/zerotier/ZeroTierOne.git
$ cd ZeroTierOne

# Compile the zerotier-cli, zerotier-idtool & zerotier-one
$ make

# Compile the install program
$ make installer

# Run the install!
$ sudo ./ZeroTierOne[TAB]

Setup Network

Now you should be able to run zerotier-cli and see the commands available.

Login to https://my.zerotier.com and follow the on screen steps for creating a network and take note of the network ID.

Run on the PINE64 the following to make a join request (replacing the [network id] with your own).

$ sudo zerotier-cli join [network id]

Refresh the ZeroTier webpage and you should see a device has been added to the network with a red cross by it, click it and it will accept the device into the network!

Assign an IP address to the device and you’re good to go. Setup ZeroTier on other devices and they should all be able to communicate with each other, no matter where they are — just so long as they have internet.