Create peer test

This commit is contained in:
2026-03-01 22:01:34 +01:00
parent df6f40843c
commit 8ae7ec075e

36
main.go
View File

@@ -1,23 +1,45 @@
package main package main
import ( import (
"fmt"
"log" "log"
"net"
"time"
"golang.zx2c4.com/wireguard/wgctrl" "golang.zx2c4.com/wireguard/wgctrl"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
) )
func main() { func main() {
client, _ := wgctrl.New() client, _ := wgctrl.New()
defer client.Close() defer client.Close()
dev, err := client.Device("wg0") newcfg(client, "OiR2n329loGJaadqvxFKScX4lK7cOpbAcSrBUmyCFD0=")
if err != nil {
log.Fatalf("get device error: %v", err)
} }
fmt.Printf("Device %s has %d peers\n", dev.Name, len(dev.Peers)) func newcfg(client *wgctrl.Client, pubkey string) {
for _, v := range dev.Peers { peerPubKey, err := wgtypes.ParseKey(pubkey)
fmt.Printf("AllowedIP: %s", &v.AllowedIPs[0]) if err != nil {
log.Fatalf("invalid peer public key: %v", err)
} }
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")
} }