Network-Interface

OpenBSD 6.7 Wireguard 指令失敗

  • September 14, 2020

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
   root@syspatch-67-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP

由於上面的輸出,我相信我的系統應該有核心空間的 Wireguard 驅動程序(即)。wg(4)

預設情況下,沒有 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介面已創建,但參數被靜默刪除(即,沒有私鑰、沒有埠和 no rdomain)。

您並不完全清楚您使用的作業系統版本。請注意,在(即,加上更新檔)上不可用且不wg 可用。您的and建議您使用後者。 可用,並且 FWIW 至少可以正常工作一個月(我在執行從 8 月 15 日開始的快照的機器上測試了您的命令)。6.7-release``6.7-stable``-release``uname``sysctl kern.version``wg -current

但是,您(顯然)部分支持wgonifconfig但沒有man頁面支持,這表明核心未與使用者空間同步,正如@AB 已經指出的那樣。

由於系統似乎已經沒有遵循-stable,已經部分升級了-current核心,如果是緊急需要,我的建議是使用wg它來更新它(不要忘記升級軟體包)。另外,請注意,現在應該不會太久了,它將擁有原生的wireguard支持,所以如果擁有的緊迫性沒有超過執行的優勢,您可能只需等待幾週併升級到它出來時.-current``sysupgrade -s``6.8-release``wg``-stable``6.8-release

引用自:https://unix.stackexchange.com/questions/608760