From 8ae7ec075e4cb3abb7cca012260d2a8f4a5adfb4 Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Sun, 1 Mar 2026 22:01:34 +0100 Subject: [PATCH] Create peer test --- main.go | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 7e766cb..005e7e9 100644 --- a/main.go +++ b/main.go @@ -1,23 +1,45 @@ package main import ( - "fmt" "log" + "net" + "time" "golang.zx2c4.com/wireguard/wgctrl" + "golang.zx2c4.com/wireguard/wgctrl/wgtypes" ) func main() { client, _ := wgctrl.New() defer client.Close() - dev, err := client.Device("wg0") + newcfg(client, "OiR2n329loGJaadqvxFKScX4lK7cOpbAcSrBUmyCFD0=") + +} + +func newcfg(client *wgctrl.Client, pubkey string) { + peerPubKey, err := wgtypes.ParseKey(pubkey) if err != nil { - log.Fatalf("get device error: %v", err) + log.Fatalf("invalid peer public key: %v", err) } - fmt.Printf("Device %s has %d peers\n", dev.Name, len(dev.Peers)) - for _, v := range dev.Peers { - fmt.Printf("AllowedIP: %s", &v.AllowedIPs[0]) + allowedIP1 := net.IPNet{IP: net.ParseIP("10.0.0.3"), Mask: net.CIDRMask(32, 32)} + persistentKeepalive := 25 * time.Second + + peerCfg := wgtypes.PeerConfig{ + PublicKey: peerPubKey, + AllowedIPs: []net.IPNet{allowedIP1}, + PersistentKeepaliveInterval: &persistentKeepalive, } + + cfg := wgtypes.Config{ + Peers: []wgtypes.PeerConfig{peerCfg}, + } + + if err := client.ConfigureDevice("wg0", cfg); err != nil { + log.Fatalf("failed to add peer: %v", err) + } + + log.Println("Peer added") + }