Documentation
¶
Overview ¶
Copyright (C) 2018-2022 Matt Layher Copyright (C) 2025 Advanced-WG, V. Bantserov
Package wgctrl enables control of WireGuard and AmneziaWG devices on multiple platforms.
For more information on WireGuard, please see https://www.wireguard.com/. For AmneziaWG, see https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.
This package is a fork of WireGuard/wgctrl-go with full AmneziaWG support:
- Reading AWG parameters (Jc, Jmin, Jmax, S1-S4, H1-H4, I1-I5) via Device()
- Writing AWG parameters via ConfigureDevice()
- Automatic parameter generation via Config.GenerateAmneziaParams()
- Parameter validation via Config.Validate()
- Userspace AWG daemon support (amneziawg-go)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
A Client provides access to WireGuard device information.
func (*Client) Close ¶
Close releases resources used by a Client.
All underlying clients are closed regardless of errors. If multiple clients fail to close, their errors are joined with errors.Join so callers can inspect individual errors via errors.Is / errors.As.
func (*Client) ConfigureDevice ¶
ConfigureDevice configures a WireGuard device by its interface name.
Because the zero value of some Go types may be significant to WireGuard for Config fields, only fields which are not nil will be applied when configuring a device.
If the device specified by name does not exist or is not a WireGuard device, an error is returned which can be checked using `errors.Is(err, os.ErrNotExist)`.
func (*Client) Device ¶
Device retrieves a WireGuard device by its interface name.
If the device specified by name does not exist or is not a WireGuard device, an error is returned which can be checked using `errors.Is(err, os.ErrNotExist)`.
func (*Client) Devices ¶
Devices retrieves all WireGuard devices on this system.
When multiple backend clients report the same device (identified by interface name), only the first occurrence is kept. This prevents duplicates when, for example, both kernel and userspace clients discover the same interface.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
wgctrl
command
Command wgctrl is a testing utility for interacting with WireGuard via package wgctrl.
|
Command wgctrl is a testing utility for interacting with WireGuard via package wgctrl. |
|
internal
|
|
|
wgfreebsd
Package wgfreebsd provides internal access to FreeBSD's WireGuard ioctl interface.
|
Package wgfreebsd provides internal access to FreeBSD's WireGuard ioctl interface. |
|
wgfreebsd/internal/nv
Package nv marshals and unmarshals Go maps to/from FreeBSDs nv(9) name/value lists See: https://www.freebsd.org/cgi/man.cgi?query=nv&sektion=9
|
Package nv marshals and unmarshals Go maps to/from FreeBSDs nv(9) name/value lists See: https://www.freebsd.org/cgi/man.cgi?query=nv&sektion=9 |
|
wgfreebsd/internal/wgh
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using ioctl calls.
|
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using ioctl calls. |
|
wginternal
Package wginternal contains shared internal types for wgctrl.
|
Package wginternal contains shared internal types for wgctrl. |
|
wglinux
Package wglinux provides internal access to Linux's WireGuard generic netlink interface.
|
Package wglinux provides internal access to Linux's WireGuard generic netlink interface. |
|
wgopenbsd
Package wgopenbsd provides internal access to OpenBSD's WireGuard ioctl interface.
|
Package wgopenbsd provides internal access to OpenBSD's WireGuard ioctl interface. |
|
wgopenbsd/internal/wgh
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using ioctl calls.
|
Package wgh is an auto-generated package which contains constants and types used to access WireGuard information using ioctl calls. |
|
wgtest
Package wgtest contains shared testing utilities for package wgctrl.
|
Package wgtest contains shared testing utilities for package wgctrl. |
|
wguser
Package wguser provides internal access to the userspace WireGuard configuration protocol interface.
|
Package wguser provides internal access to the userspace WireGuard configuration protocol interface. |
|
Package wgtypes provides shared types for the wgctrl family of packages.
|
Package wgtypes provides shared types for the wgctrl family of packages. |