Interface

class pywireguard.base.interface.Interface(name)

A wrapper for a Wireguard interface

An abstraction to a Wireguard tunnel interface.

Typical usage example:

from pywireguard.factory import Interface

wgtest0 = Interface('wgtest0')
wgtest0.private_key = generate_private_key()
property fwmark: int

A 32-bit fwmark for outgoing packets. If set to 0 or “off”, this option is disabled. Optional.

property listen_port: int

A integer port for listening. Optional; if not specified, chosen randomly.

property peers: List[pywireguard.base.peer.Peer]

List of device peers.

property private_key: bytes

A base64 private key. Required.

property public_key: bytes

The base64 representation of a Wireguard public key. It is automatically generated from the private key.

remove_peer(peer: pywireguard.base.peer.Peer) None

Remove peer from interface.

Parameters

peer – a Peer object.

Typical usage example:

...
peer = wgtest0.peers[0]
wgtest0.remove_peer(peer)
upsert_peer(peer: pywireguard.base.peer.Peer) None

Add or update peer on interface.

Parameters

peer – a Peer object.

Typical usage example:

from pywireguard.factory import Peer
...
peer = Peer(
    public_key,
    preshared_key=generate_preshared_key()
)
wgtest0.upsert_peer(peer)