Both a router and a small computer can terminate a VPN, and the decision rarely turns on throughput. It turns on who applies the update at two in the morning, what else stops when that box reboots, and whether you can still reach a console when the tunnel is the thing that broke. Answer those three questions for each candidate and the choice usually makes itself. The procedure below turns the comparison into a short list of things you can check before committing.

Start with what has to stay up when the tunnel fails

The failure to design for is the one where the VPN process dies and you need to reach the host anyway. On a router, the tunnel and the internet gateway share a fate: one bad configuration change can take both down, and the recovery path is often a physical reset. On a separate computer, the gateway keeps working and the host is still reachable over the LAN. Which of those outcomes you can tolerate decides more than any feature list.

Write the answer as a sentence: if the VPN host reboots, what does the household or the office lose? If the answer includes all internet access, you have accepted a shared failure domain and should say so deliberately rather than discover it later.

A second service on the same appliance is not a spare console. It shares the power supply, the firmware and the administrator account.

Count the maintenance surfaces each host adds

A router brings vendor firmware with its own release cadence, and the VPN feature is usually one module inside a much larger image. A computer brings an operating system, a package manager, a kernel and a set of services you now own. Both need patching, and the real question is which cadence you will keep once the novelty wears off.

On a Linux host, make that cadence visible instead of hoping for it. systemctl list-timers shows the scheduled jobs and apt list --upgradable shows what is waiting. Record which updates need a reboot, because a VPN host that reboots is an outage unless you planned for one. A router with no unattended update path needs a calendar entry instead, which is a weaker control but an honest one.

Count the accounts as well. Every additional administrator login on the VPN host is another credential to rotate and another path to revoke.

Trace the private-network path, not the label on the box

Clients do not care where the server runs; they care whether the protected prefixes are reachable and whether a return path exists. Put the server where the routing is simplest, which usually means directly on the segment that holds the resources. A computer behind the router still needs a port forward, and the resources on that LAN still need a route back to the tunnel subnet.

Check forwarding on the host before blaming the client. sysctl net.ipv4.ip_forward should report 1, and nft list ruleset or iptables -S shows whether the tunnel interface is allowed to forward at all. A missing masquerade rule looks exactly like a broken tunnel from the client side.

Decide what the tunnel must not reach, too. A server placed on the router can see every subnet that router routes, which is often more than the access policy intends. On a separate host the same isolation is one firewall rule away, and the blast radius of a compromised client is smaller. The IPsec gateway description in RFC 7296 treats this as a routing and policy question, not a hardware one, and neither shape is safer by default until the policy is written down.

Keep a recovery console that does not depend on the tunnel

The console you use to repair the VPN cannot be the VPN. Keep a LAN address, a serial console or a provider console that works while the tunnel is down, and use it at least once before you need it. An out-of-band path that has never been exercised is a plan rather than a capability.

Back up the configuration somewhere the host itself cannot delete. tar -czf vpn-config-2026-11-03.tar.gz /etc/wireguard /etc/openvpn captures the keys and the service definitions, and the copy has to leave the machine. Include the firewall rules and the client inventory, because restoring keys without the peer list produces a server that nobody can join. Store the archive where the recovery console can reach it.

Write the rollback step into the same note. A configuration change without a documented reversal is a permanent change, whatever the intention was.

Verify the choice with a reboot and an update

Test the arrangement the way it will fail, not the way it works on a good day. Reboot the host, apply a pending update, and confirm the tunnel returns without manual steps.

After the reboot, check the three things that break most often. systemctl is-active wg-quick@wg0 reports whether the interface came back, ss -lunp shows whether anything is listening on the port, and wg show lists a peer with a completed handshake. A service that is active with no handshake means the firewall or the route is wrong rather than the daemon.

Repeat the check from a client on a different network than the one you configured from. If the tunnel survives a reboot, an update and a change of client network, the host choice is settled for now. If it does not, the missing piece is usually a documented step rather than a different box.

مۇناسىۋەتلىك ماقالىلەر