Closed 5t-RawBeRry closed 8 months ago
你查下你的系统如何检测和打开wireguard内核
你查下你的系统如何检测和打开wireguard内核
这个如何查
谷歌,chatGPT,gemini 比如debian 12如何检测是否有wireguard内核,根据反馈再继续问如何打开
谷歌,chatGPT,gemini 比如debian 12如何检测是否有wireguard内核,根据反馈再继续问如何打开
我一直有在使用过wireguard组网的,内核也是自己编译的,确实勾选了wireguard debian12 默认的内核已经是6.1.0了,wireguard 是从5.6就被合进内核了 我的虚拟化是kvm 也并不是lxc或者ovz 这类容器
刚刚试着用 lsmod 发现wireguard 没有在其中,但是其他机器使用了相同的内核,并没有执行我上述内容,lsmod是存在wireguard的。
解决问题方案就是…… sudo modprobe wireguard
即可
我以为是您的脚本有啥特殊设置什么的……
判断那个是这样逻辑的,你逐步排查一下看看。
# 判断是否有加载 wireguard 内核,如没有先尝试是否可以加载,再重新判断一次
if [ ! -e /sys/module/wireguard ]; then
[ -s /lib/modules/$(uname -r)/kernel/drivers/net/wireguard/wireguard.ko ] && [ $(type -p lsmod) ] && ! lsmod | grep -q wireguard && [ $(type -p modprobe) ] && modprobe wireguard
[ -e /sys/module/wireguard ] && KERNEL_ENABLE=1 || KERNEL_ENABLE=0
else
KERNEL_ENABLE=1
fi
问题似乎存在这里 [ -s /lib/modules/$(uname -r)/kernel/drivers/net/wireguard/wireguard.ko ]
改为 [ -s /lib/modules/$(uname -r)/kernel/drivers/net/wireguard/wireguard.ko* ]
问题解决
因为我的WireGuard内核模块文件叫这个 wireguard.ko.xz
user@host:~$ ls /lib/modules/$(uname -r)/kernel/drivers/net/wireguard/
wireguard.ko.xz
user@host:~$ rmmod wireguard
user@host:~$ bash test.sh
KERNEL_ENABLE=1
user@host:~$ cat test.sh
# 判断是否有加载 wireguard 内核,如没有先尝试是否可以加载,再重新判断一次
if [ ! -e /sys/module/wireguard ]; then
[ -s /lib/modules/$(uname -r)/kernel/drivers/net/wireguard/wireguard.ko* ] && [ $(type -p lsmod) ] && ! lsmod | grep -q wireguard && [ $(type -p modprobe) ] && modprobe wireguard
[ -e /sys/module/wireguard ] && KERNEL_ENABLE=1 || KERNEL_ENABLE=0
else
KERNEL_ENABLE=1
fi
echo KERNEL_ENABLE=$KERNEL_ENABLE
厉害!!
第一次选内核选的是 wireguard-go with reserved 之前不太清楚可以通过 warp k 来切换 wireguard-go with reserved 或者wireguard kernel ,所以直接使用 warp u 卸载之后重装。 但是在安装过程中发现无法选择内核 提示 只能使用 wireguard-go with reserved 运行。 只用warp k 切换 也是 提示 只能使用 wireguard-go with reserved 运行。
有两台机器不太方便重装,请问有什么解决方案 (如果是一开始使用 warp k 切换内核之后再卸载则不会出现这种情况)