Support for running as non-root user on OpenBSD with WG_TUN_FD?

Brian brian at
Thu Mar 26 02:31:49 CET 2020

Hi there,

From what I can find, I should be able to run wireguard-go as a non-root user on OpenBSD, as long as I set the MTU on the interface to 1420 before starting WireGuard:

I have the tun2 interface configured with the MTU set to 1420. However, I’m seeing the following error when actually running wireguard-go as the non-root user:

ERROR: (tun2) 2020/03/24 22:47:37 Failed to create TUN device: open /dev/tun2: permission denied

I don’t know Go very well, but it seems like main.go calls the CreateTUN function, and CreateTUN (in tun_openbsd.go) tries to open /dev/tun2 in read-write mode? There seems to be an option to set the WG_TUN_FD environment variable, so that CreateTUNFromFile gets called instead of CreateTUN, but I don’t understand how to properly get a file descriptor in this context.

Thanks for any insight anyone can provide!


More information about the WireGuard mailing list