Wireguard启动报错“Unknown device type”及内核模块版本不匹配的解决方法咨询
Wireguard启动报错“Unknown device type”及内核模块版本不匹配的解决方法咨询
看起来你遇到的是很常见的WireGuard内核模块版本不匹配问题——你的系统当前运行的是5.3.0-51-generic内核,但WireGuard模块只被编译安装在了4.15.0-204-generic内核目录下,所以modprobe找不到对应模块,进而导致wg-quick启动失败报“Unknown device type”。
我给你几个一步步的解决办法:
第一步:确认当前内核版本(再次核对)
先确保你确实在运行5.3.0-51-generic内核,执行命令:uname -r输出应该和你提到的一致。
第二步:用DKMS重新为当前内核编译WireGuard模块
DKMS的作用就是自动为不同内核版本编译适配的模块,你可以手动触发它为当前内核编译WireGuard:sudo dkms install wireguard/1.0.20201112 -k 5.3.0-51-generic如果执行这个命令时提示旧模块相关的错误,可以先卸载旧内核对应的WireGuard模块:
sudo dkms remove wireguard/1.0.20201112 -k 4.15.0-204-generic之后再重新运行上面的
dkms install命令。第三步:验证模块加载并启动WireGuard
编译完成后,尝试加载WireGuard模块:sudo modprobe wireguard如果没有报错,就可以正常启动WireGuard了:
sudo wg-quick up /etc/wireguard/wg0.conf如果遇到内核头文件缺失的问题
要是dkms install时提示找不到内核头文件,先安装当前内核对应的头文件:sudo apt install linux-headers-$(uname -r)安装完成后再重新执行DKMS的编译命令。
备注:内容来源于stack exchange,提问作者Hedgehog
相关产品推荐
相关产品推荐

