Skip to main content
To run FreeBSD jails on a VPS, you need a provider that runs full virtual machines (such as KVM) and offers FreeBSD. On FlashRDP you pick a FreeBSD template at deploy time, update the host, install Bastille, set up its loopback network and pf firewall, then bootstrap a release and create jails. FreeBSD isn’t a Linux distribution: it has its own kernel. Container-based VPS platforms (OpenVZ, LXC) share a Linux kernel and can’t run it. A Kernel-based Virtual Machine (KVM) runs FreeBSD’s own kernel, which is what FlashRDP provides.

Why jails?

Jails are FreeBSD’s built-in OS-level isolation, available since FreeBSD 4.0 (2000).
  • Isolation: processes in a jail can’t see or touch the host or other jails.
  • Lightweight: jails share the host kernel, so each one costs little more than the processes it runs.
  • Networking: each jail can have its own IP address, or a full network stack with VNET.

Set up your first jail

Deploy a FlashRDP Linux VPS and choose a FreeBSD template (14.x or 15.0; see available distributions). Then log in via SSH as root.

1. Update the host

Reboot if the update included a new kernel.

2. Install Bastille

Bastille is a popular jail manager. You can also manage jails by hand with /etc/jail.conf.

3. Set up networking and the firewall

Bastille gives jails private addresses on a loopback interface and uses pf to give them outbound access (NAT):
Review /etc/pf.conf before you start pf, and make sure it allows SSH (Bastille’s default ruleset does). Starting pf can drop your current SSH session. If you lose access, use Console on your server’s page in the Billing Portal to fix the rules.

4. Bootstrap a release and create a jail

Bootstrap the release that matches your host, then create and start a jail on a private address:
freebsd-version prints something like 14.3-RELEASE-p2; the cut keeps 14.3-RELEASE.

ZFS snapshots

If your server uses ZFS (check with zfs list), Bastille can create jails as ZFS datasets. Snapshots and clones are then near-instant, so you can roll a jail back after a bad change. Set bastille_zfs_enable and bastille_zfs_zpool in Bastille’s config before bootstrapping; see the Bastille documentation.

What Is a FreeBSD VPS?

Available Distributions

Browser Console

Connect via SSH

Last modified on October 16, 2026