Create peer test
This commit is contained in:
34
main.go
34
main.go
@@ -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=")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func newcfg(client *wgctrl.Client, pubkey string) {
|
||||||
|
peerPubKey, err := wgtypes.ParseKey(pubkey)
|
||||||
if err != nil {
|
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))
|
allowedIP1 := net.IPNet{IP: net.ParseIP("10.0.0.3"), Mask: net.CIDRMask(32, 32)}
|
||||||
for _, v := range dev.Peers {
|
persistentKeepalive := 25 * time.Second
|
||||||
fmt.Printf("AllowedIP: %s", &v.AllowedIPs[0])
|
|
||||||
|
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")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user