This runbook provides step-by-step instructions for installing and configuring IVPN and Tailscale on Ubuntu Linux to ensure they work together seamlessly. By default, IVPN's aggressive firewall (kill switch) blocks Tailscale's virtual network adapter. This guide resolves that conflict using split tunneling.
- Ubuntu Linux system (20.04, 22.04, 24.04)
- Sudo privileges
- Active IVPN account
- Active Tailscale account
- Add the IVPN repository key:
curl -fsSL https://repo.ivpn.net/ubuntu/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/ivpn-archive-keyring.gpg - Add the IVPN repository:
echo "deb [signed-by=/usr/share/keyrings/ivpn-archive-keyring.gpg] https://repo.ivpn.net/ubuntu/ generic main" | sudo tee /etc/apt/sources.list.d/ivpn.list
- Update package lists and install IVPN:
sudo apt update sudo apt install ivpn-ui
- Open the IVPN GUI, log in to your account, and connect to a server.
- Add Tailscale's package signing key and repository:
(Note: Replace
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
jammywith your Ubuntu codename if different, e.g.,focalornoble) - Update package lists and install Tailscale:
sudo apt update sudo apt install tailscale
- Authenticate and connect Tailscale to your Tailnet:
(Note: At this point, your internet connection may drop or Tailscale may fail to route traffic due to IVPN's firewall.)
sudo tailscale up
To allow Tailscale traffic to bypass the IVPN tunnel, you must add the Tailscale daemon to IVPN's split tunnel list.
- Open the IVPN GUI.
- Navigate to Settings (gear icon) -> Split Tunnel.
- Check the box for Split Tunnel.
- Ensure Inverse mode (BETA) is unchecked.
- Uncheck Block DNS servers not specified by the IVPN application. (Crucial for Tailscale MagicDNS)
- Click Add application...
- Navigate to
/usr/sbin/and selecttailscaled. (Alternatively, via CLI:ivpn split-tunnel -add /usr/sbin/tailscaled)
If you experience DNS resolution issues, prevent Tailscale from hijacking the system DNS, allowing IVPN to handle public DNS queries while Tailscale handles internal MagicDNS.
- Bring Tailscale down:
sudo tailscale down
- Bring Tailscale back up without accepting DNS:
sudo tailscale up --accept-dns=false
- Verify Tailscale is running and connected:
tailscale status
- Test connectivity to another node on your Tailnet:
tailscale ping <TAILSCALE_IP_OF_OTHER_NODE>
- Test general internet connectivity:
ping 8.8.8.8
- No Internet: Ensure IVPN's "Block DNS servers not specified by the IVPN application" is unchecked.
- Cannot reach Tailnet nodes: Verify
/usr/sbin/tailscaledis exactly what was added to the IVPN split tunnel. Do not add the CLI tool/usr/bin/tailscale.