猿问

如何在 Windows 10 上配置 wg0 接口?

我无法在 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)

    }

}


斯蒂芬大帝
浏览 221回答 1
1回答

陪伴而非守候

在 GitHub 上升级问题后,结果证明是库中的一个错误,在我发布此问题后不久就立即修复了。
随时随地看视频慕课网APP

相关分类

Go
我要回答