The tunnel client is installed, the profile is valid, and the helper still fails on a command called brctl. Reinstalling the VPN package does not fix this, because the missing program is not part of the tunnel. It is part of a local bridge script, and the script is asking for a tool the current system no longer ships by default. The two problems look related only because the script runs at connection time.

A missing helper program is not a tunnel fault

Start with the exact invocation and its environment. A command that exists in your interactive shell may be missing from a service's restricted search path, so a not-found error can mean two different things. Run command -v brctl as the service user, and read the unit that launches the script with systemctl cat openvpn-bridge-helper or its equivalent. The error text usually names the missing binary, and that name is the dependency to resolve.

Reinstalling the tunnel client supplies the tunnel, not the bridge utility. Those are separate packages with separate maintainers.

What brctl did, and why it is obsolete

The tool created and administered Linux Ethernet bridges: addbr created a bridge, and addif attached a port. Debian's manual marks it obsolete and points to the iproute2 bridge tooling, which covers more. Obsolete does not mean removed everywhere, and a newer tool being present does not make a script's literal brctl call succeed.

So the question is not whether brctl is good. It is whether the script is still maintained and which package, if any, your distribution ships for it.

Two honest options: maintain or migrate

Maintaining means installing the documented dependency from your distribution's supported package and confirming the script's origin, expected version, and execution path. That satisfies a missing executable and nothing else: the script's bridge names, address plan, and cleanup behaviour remain unvalidated. Migrating means rewriting the intended operations for the supported network configuration. Bridge creation, port attachment, host addressing, and link activation are four separate changes, and a shell alias from brctl to another utility is not a translation.

The iproute2 equivalents are short: ip link add name br-vpn type bridge creates the bridge, and ip link set tap0 master br-vpn attaches a port.

Write down which option you chose and who owns the script. A half-migrated helper that calls both tools is worse than either.

Look at the bridge design before either

An Ethernet bridge suits a design that needs Ethernet carriage and TAP peers. Installing bridge utilities does not turn a routed TUN connection into a bridge, and a supported routed profile should not be bent to match an unrelated script. If the profile routes, find out why a bridge helper runs at all.

Before touching a real bridge, preserve the management path and identify the single owner of network configuration.

Then read the next error after fixing the dependency. Local bridge setup, remote authentication, and permitted traffic through the result are three separate outcomes, and only one of them was ever about brctl.

Erthyglow kevrennek