How to install VPN services on Zima OS

I have installed Zima OS on my laptop, and I would like to install NordVPN. I access Terminal using SSH and keep running into issues. Please help!

Sudo: apt: command not found, sudo: dnf: command not found. What to do here?

Hi, I am not a tech expert. But as far as I am aware ZimaOS itself doesn’t support apt commands since it’s a customized server OS. Anyway you can run apt commands within any docker container terminal installed within ZimaOS. If your requirement is to connecting and managing server remotely I highly suggest trying Tailscale. I am using Tailscale more than one year now without any issue.

I am aware of Tailscale. Since NordVPN offers mesh network capabilities i wanted to give NORDVPN a try.

1 Like

ZimaOS is not a traditional Linux distro (like Ubuntu/Debian). It’s Buildroot-based, so tools like apt, dnf, or yum do not exist. That’s why those commands fail.

What this means

  • You cannot install NordVPN directly via CLI on ZimaOS
  • ZimaOS is designed to run services via Docker containers, not system packages

Supported ways to use a VPN on ZimaOS

Option 1 (Recommended): Run NordVPN via Docker

Use a VPN container and route apps through it.

Common approaches:

  • Gluetun (very popular, supports NordVPN)
  • NordVPN-compatible OpenVPN / WireGuard containers

Example stack idea:

  • gluetun (VPN container)
  • Your apps (qBittorrent, etc.) connected to the same Docker network

This is the cleanest and safest way on ZimaOS.


Option 2: VPN at the network level

Instead of installing VPN on ZimaOS:

  • Run NordVPN on your router
  • Or on an upstream firewall / gateway
  • ZimaOS then just uses that routed connection

Option 3 (Not recommended): Manual hacks

Trying to inject binaries into ZimaOS:

  • Breaks easily
  • Lost on updates
  • Not supported

I don’t recommend this.


Key takeaway

ZimaOS = appliance OS, not a package-managed Linux system
VPNs must run in Docker or outside the OS

So the way mine is setup is gluetun is running and is routing through my VPN as expected (confirmed via terminal using ifconfig). I have it set to the gluetun network as well. In the app I’d like to use the network I also have it set to use the gluetun netowrk, however when I go into the terminal within that container and check the IP it still shows the host IP, not the VPN ip… I’m at a loss what of to do. I’ve seen issues with containers which are named, so I tried removing that. Nothing. I tried adding network_mode: “container:gluetun” in the container variables and still nothing. I have no clue how to move forward and am debating moving off of ZimaOS due to this. Any help would be appreciated!

If the app container still shows your host IP, it is not actually sharing Gluetun’s network stack — even if the UI says it is.

On Docker, the only correct way is:

network_mode: “container:gluetun”

And when you use that:

  • No ports:
  • No networks:
  • No bridge mode
  • No extra network attachments

If any of those exist, it will leak to host networking.

Also confirm the container name is exactly gluetun:

docker inspect your_app | grep NetworkMode

It must show:

“NetworkMode”: “container:gluetun”

If it says bridge, it’s not routed through the VPN.

This is a Docker namespace issue, not a ZimaOS limitation.