A simple control interface for WireGuard via Netlink, written in Python.
from wgnlpy import WireGuard
interface = "wg0"
peer = b'...'
wg = WireGuard()
wg.set_peer(interface, peer,
endpoint="203.0.113.0:51820",
allowedips=["2001:db8::/32"],
)
assert peer in wg.get_interface(interface).peers
wg.remove_peers(interface, peer)
assert peer not in wg.get_interface(interface).peers
Requires
- cryptography, &
- pyroute2.
Also useful: the sockaddr_in
and sockaddr_in6
utility classes for
sockaddr manipulation.
License: MIT