VpnHood!

System requirements

What a machine needs to run VpnHood! SERVER: one of the systems below, an x64 or ARM64 processor, and a public IP address.

Linux

Linux is the recommended system: only there does the server handle IPv6 as it does IPv4. The server runs on x64 and ARM64, on these distributions and the ones built on them:

DistributionVersions
Ubuntu22.04, 24.04, 26.04
Debian12, 13
Red Hat Enterprise Linux8, 9, 10
AlmaLinux8, 9, 10
Rocky Linux8, 9, 10
CentOS Stream9, 10
Fedora44, 45
openSUSE Leap16.0
SUSE Linux Enterprise Server15 SP7, 16.0
Amazon Linux2023
Arch LinuxRolling release, kept up to date

The install command needs root access and systemd, which runs the server as a service. Where the system has no ICU, a library the server needs, the command installs it.

The server's VPN adapter needs a TUN device and the ip and iptables commands, which nearly every server has. Without them, the server runs as a proxy only: apps still connect, and their traffic goes through the server's proxy instead of its adapter.

Not supported: Alpine and the other distributions built on musl instead of glibc, where you can run the server in Docker, and distributions older than glibc 2.27, such as CentOS 7.

Docker

The server's Docker image runs on any Linux machine with Docker and its compose plugin, on x64 or ARM64, Alpine included: see Install VpnHood! SERVER with Docker. A container has no TUN device, so there the server runs as a proxy only.

Windows

The server also runs on Windows 10, Windows 11 and Windows Server 2016 or later, with these limits:

  • x64 only: there is no package for Windows on ARM.
  • Windows' NAT translates only IPv4, so IPv6 traffic always goes through the server's proxy.
  • On Windows 10 and 11, the server's VPN adapter needs Hyper-V turned on, as Windows' NAT comes with it, and Home editions have no Hyper-V. Without it, the server runs as a proxy only. Windows Server needs nothing turned on.

Processor

An ARM64 processor, or an x64 processor with SSE4.2 and POPCNT, as .NET 11 requires. Every x64 processor from the last ten years has them, but some VPS providers hide them behind a basic virtual processor, which Linux names Common KVM processor. On such a machine the server stops as soon as it starts, with the error The current CPU is missing one or more of the following instruction sets.

To check an x64 Linux machine, run this on it:

grep -qw sse4_2 /proc/cpuinfo && grep -qw popcnt /proc/cpuinfo && echo Supported || echo "Not supported"

If it prints Not supported, ask your provider to change the machine's CPU type to host or x86-64-v2. If they cannot, choose another provider.

Network

  • A public IP address, which apps connect to.
  • A TCP port open, both in the machine's firewall and in your hosting provider's. The server listens on port 443 by default, and we recommend it, as networks rarely block it, but any port works. To change it, and for the server's UDP port, see Set your server's IP addresses.

Next steps