Getting Started with Speedify on the Raspberry Pi

The Raspberry Pi 4 (RPI4) is a great little computer. It's one of our favorites. It's a low-cost, but pretty fast, Linux device.

Installing on the Raspberry Pi is straightforward, just follow the instructions for installing on Linux

Other than Ubuntu laptops, the Raspberry Pi 4 is the single Linux device that has gotten the most usage by us, here at the Speedify team. Based on this experience, we have a few tips to share:

Use Predictable Network Names: By default, Raspbian names adapters in the order that they are noticed at boot. This means that if you have many adapters of the same kind, they could switch names, and possibly Speedify settings, after the next reboot. To force them to always have the same name, run the following from the command line: 

sudo raspi-config

Then, use the up and down arrows to navigate down to "Advanced Options" and click Enter. Then navigate down to "Network interface names" and click Enter again. When it asks if you would like "Predictable network names" select "<Yes>" and then you can exit the utility.

You will need to reboot for it to take effect.

This will have the effect of making adapters, other than the built-in ones have longer autogenerated names.

Speedify in the Applications Menu: If you install the user interface, you can find it in the Applications menu under Internet.

Built-In Adapters: When setting up sharing over Wi-Fi or over Ethernet, you need to know your adapter names. The built-in adapters have predictable names:

  • eth0 - The built-in Ethernet
  • wlan0 - The built-in Wi-Fi
  • usb0 - If you have followed the instructions to set up the RPI4 as a USB Ethernet gadget, then usb0 will be the network interface to talk to the computer that your PI is plugged into
  • connectify0 - This is the bonded virtual interface to the Speed Server/internet.

iPhone Support: Out of the box, Raspbian has support for Ethernet, Wi-Fi, tethered Android phones, but is missing support for tethered iPhones. Luckily it is a simple command to add support:

sudo apt install usbmuxd

This will install the software needed for the Raspberry Pi to use a tethered iPhone as an internet source. Read more

NOTE: Since iOS 15 USB Tethering is hit and miss on Linux devices and we don't have a reliable workaround yet.

USB-C gadget: The Raspberry Pi 4 can be configured to act as a USB Ethernet device to any USB-C computer that it is plugged into. This lets you turn your RPI4 into a sort of "Speedify Dongle" which brings bonded internet to any computer that it is plugged into. Read more.

USB-C cables: The USB-C port in the Raspberry Pi 4 is miswired, and does not work with all USB-C cables. It's high end, "e-marked" cables that it has trouble with, the kinds that come with laptops like MacBooks. It works fine with the official Raspberry Pi 4 charger, and it also works fine with the Amazon Basics USB-C cables. We're not affiliates or anything, we've just had enough frustrations looking for a working cable, that we thought we should share, and save you some pain.

No AES Hardware Acceleration: This is really the only thing we really don't like about the Raspberry Pi: it lacks the optional ARM AES encryption instructions. This means that Speedify uses ChaCha encryption in software instead of AES. While it's fully secure, it does limit the speeds when encryption is on to a few hundred megabits per second.

Speedify UI Automatic Start: If you want Speedify UI to automatically start when you boot your device, copy /usr/share/speedifyui/speedifyui-autostart.desktop to ~/.config/autostart/

note that the UI will not appear on screen, but it will be running in the system tray.

Automatic Start: This is mentioned in the Install Instructions, but it's worth pointing out again. By default, the Speedify background service will run after installation and when the device boots, but Speedify will not automatically connect to the VPN by default.

To set Speedify to automatically connect, run:

/usr/share/speedify/speedify_cli startupconnect on

To stop the Speedify service from running at boot completely, you can run:

sudo systemctl disable speedify

Desktop Notifications: Raspberry Pi OS does not support desktop notifications out of the box. To enable support for desktop notifications, run the following command:

sudo apt install mate-notification-daemon