我无法在 Windows (10) 上使用 wgctl 管理wireguard 接口。我在linux上用过,一切都很好。我正在使用最新的 Windows 10 更新、最新的wireguard.exe、最新的 1.17.3。
我正在使用创建的隧道wireguard.exe /installtunnelservice /path/wg0.conf。如果我使用wireguard GUI 管理隧道,一切正常。但我需要以编程方式进行。
C:\>wg
interface: wg0
public key: K0BZ3Bk...5tCWo=
private key: (hidden)
listening port: 57538
peer: 7W6tOXI...F7zAo=
endpoint: 159....105:51820
allowed ips: 100.127.128.0/18
latest handshake: 43 seconds ago
transfer: 31.61 KiB received, 115.69 KiB sent
persistent keepalive: every 25 seconds
...
以下代码以“文件不存在”退出。将代码步入库后,我认为wireguard.exe 使用的是NT 内核模式,而库不支持它?有人可以确认吗?解决这个问题的最佳方法是什么?
package main
import (
"log"
"golang.zx2c4.com/wireguard/wgctrl"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
)
func main() {
wgc, err := wgctrl.New()
if err != nil {
log.Printf("wgctrl.New: %s", err)
}
defer wgc.Close()
cfg := wgtypes.Config{}
port := 51822
cfg.ListenPort = &port
err = wgc.ConfigureDevice("wg0", cfg)
if err != nil {
log.Printf("wgc.ConfigureDevice: %s", err)
}
}
斯蒂芬大帝
陪伴而非守候
随时随地看视频慕课网APP
相关分类