OpenBSD 6.7 Wireguard 指令失败

OpenBSD 6.7 Wireguard 指令失败

Wireguard 设置说明在我的 OpenBSD 6.7 机器上不起作用:

$ uname -a
OpenBSD foobar 6.7 GENERIC.MP#3 amd64
$ sysctl kern.version
kern.version=OpenBSD 6.7 (GENERIC.MP) #3: Thu Jul  9 07:21:14 MDT 2020
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP

我相信我的系统应该wg(4)由于上面的输出,有内核空间 Wireguard 驱动程序(即)。

默认情况下,没有 Wireguard 接口:

$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
    index 3 priority 0 llprio 3
    groups: lo
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
    inet 127.0.0.1 netmask 0xff000000
vio0: flags=e48843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOPRIVACY,AUTOCONF6,INET6_NOSOII,AUTOCONF4>     mtu 1500
    lladdr 56:00:02:f5:e5:fa
    index 1 priority 0 llprio 3
    groups: egress
    media: Ethernet autoselect
    status: active
    inet6 fe80::5400:2ff:fef5:e5fa%vio0 prefixlen 64 scopeid 0x1
    inet 149.28.165.216 netmask 0xfffffe00 broadcast 149.28.165.255
    inet6 2401:c080:1800:4463:5400:2ff:fef5:e5fa prefixlen 64 autoconf pltime 604596 vltime 2591796
enc0: flags=0<>
    index 2 priority 0 llprio 3
    groups: enc
    status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
    index 4 priority 0 llprio 3
    groups: pflog

由于也没有 Wireguard 的手册页,我安装了wireguard-tools

$ sudo pkg_add wireguard-tools
quirks-3.326 signed on 2020-09-09T17:39:55Z
wireguard-tools-1.0.20200319v0: ok
New and changed readme(s):
    /usr/local/share/doc/pkg-readmes/wireguard-tools

的手册页wg(4)提供了创建 Wireguard 接口的说明。这在我的机器上失败了:

$ ifconfig wg0 create wgport 111 wgkey `openssl rand -base64 32` rdomain 1
ifconfig: wgport: bad value
$ echo $?
1
$ sudo ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
    index 3 priority 0 llprio 3
    groups: lo
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
    inet 127.0.0.1 netmask 0xff000000
re0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
    lladdr dc:4a:3e:d6:23:bd
    index 1 priority 0 llprio 3
    groups: egress
    media: Ethernet autoselect (100baseTX full-duplex)
    status: active
    inet 192.168.0.16 netmask 0xffffff00 broadcast 192.168.0.255
enc0: flags=0<>
    index 2 priority 0 llprio 3
    groups: enc
    status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
    index 4 priority 0 llprio 3
    groups: pflog
wg0: flags=8082<BROADCAST,NOARP,MULTICAST> mtu 1420
    index 26 priority 0 llprio 3
    groups: wg

显然,wg0接口已创建,但参数被悄悄删除(即,没有私钥,没有端口,也没有rdomain)。

答案1

您并不完全清楚您正在使用的操作系统版本。注意wg 不是可用于6.7-release不是可用6.7-stable(即-release加上补丁)。您的unamesysctl kern.version表明您正在使用后者。 wg 可用-current,并且 FWIW 现在至少可以正常工作一个月(我在运行 8 月 15 日快照的计算机上测试了您的命令)。

但是,您(显然)部分支持wgonifconfig但没有man页面,这表明内核未与用户区同步,正如 @AB 已经指出的那样。

由于系统似乎已经不遵循-stable,已经部分升级了内核-current,如果有紧急需要,我的建议是使用wg时将其全部更新(不要忘记也升级软件包)。另外,请注意,应该不会太久,它将拥有原生的wireguard支持,因此,如果拥有的紧迫性不超过运行的优势,您可能只需等待几周,然后升级到它出来的时候。-currentsysupgrade -s6.8-releasewg-stable6.8-release

相关内容