Enable Wireguard only for specific user

Nils Andreas Svee me at lochnair.net
Thu Sep 30 10:53:29 UTC 2021


What I've had success with is using policy-based routing, selecting the routing table to use based on UID's.
You create a new routing table for the WireGuard VPN and add a rule directing that users traffic to that table.

Using commands you can do this to route traffic from the user with UID 1000 to table 500.
> ip rule add pref 20 uidrange 1000-1000 lookup 500

You can also do this in systemd-networkd if you're using that. Not sure about other network managers.

Best Regards

On Thu, Sep 30, 2021, at 12:40, Florent B. wrote:
> Hi list,
> On a Linux system (Ubuntu), I would like to enable Wireguard VPN only 
> for a single user on my system.
> Currently by default, every packet of every user is getting though 
> Wireguard.
> How can I do to route packets only for 1 user ?
> I think I have to play with packets marking (wg show wg0 fwmark / 
> iptables owner/mark module), I tried some commands but was unable to 
> success.
> Can someone help please ?
> Thank you.
> Florent

More information about the WireGuard mailing list