Documentation

Using a VPN

A VPN cannot run inside Breadstick. Connect it on Android instead, and your Linux applications use it automatically.

A VPN cannot be started inside Breadstick. Connect your VPN on Android instead. Breadstick uses Android's network connection, so once the VPN is connected on Android, every Linux application goes through it, with nothing to set up inside Linux.

Why a VPN does not work inside Linux

Every VPN client works by creating a virtual network device, called a TUN device, and sending your traffic through it. That includes OpenVPN, WireGuard, Tailscale and the clients employers provide. Creating that device needs a permission Android does not give to ordinary apps.

Inside Breadstick the device file /dev/net/tun is visible, and it can even look as if it belongs to your user, but opening it fails with a permission error. A VPN client installed in Linux therefore fails at the moment it tries to bring the tunnel up.

This comes from Android's security model. It is not a setting Breadstick can turn on, and it is the same on the free version and on Pro.

Use your VPN on Android

  1. Install your VPN's Android app from Google Play. Commercial VPN providers, Tailscale, WireGuard, OpenVPN and most workplace VPNs all have one.
  2. Connect it.
  3. Use Breadstick as normal.

Android's VPN applies to the whole device. Breadstick's Linux applications send their traffic through the same Android network connection as every other app, so they are covered automatically.

To confirm it is working, open a website that shows your IP address in a Linux browser, once with the VPN disconnected and once with it connected. The address should change to the VPN's.

Things to check

Choosing apps. Many VPN apps let you pick which apps use the VPN, a feature often called split tunneling. If yours does, make sure Breadstick is included, or its traffic will go around the VPN. Breadstick counts as one app, so the whole Linux system is either in or out.

Always-on VPN. If Android is set to block connections without a VPN, that applies to Breadstick too. When the VPN disconnects, Linux loses its internet connection along with everything else.

Names on a private network. Linux resolves names through the same DNS servers Android is using at the time, so while a VPN is connected, the server it provides is the one Linux asks. A company intranet host or a Tailscale machine name resolves inside Linux just as it does in your Android apps, and when the VPN disconnects, Linux goes back to your network's own servers by itself.

The exception is a custom DNS list. If you have set your own servers in Breadstick's Settings, under Network, Linux uses those whether or not a VPN is up, and a name that only the VPN's server knows will not resolve. Switch back to Same as this device while you need it.

Editing /etc/resolv.conf by hand no longer sticks: Breadstick rewrites it whenever the network changes. The setting is the place to change it.

Still stuck

If Linux has no connection with the VPN on but works with it off, check the app selection above first. If that is not it, write to hello@breadstick.io with the name of the VPN app you use.